Создаем начальный образ УПП с данными по одному юридическому лицу (РИБ)


Как я создавал план обмена для УПП по конкретной организации (РИБ).

Руководством была поставлена задача предоставить программу с данными только по одному юридическому лицу, потенциальному покупателю бизнеса. Так как учет в информационной базе ведется с 2005 года и юридических лиц в базе более 10, было принято решение создать план обмена по конкретной организации.

Порядок работы:

1) За основу был взят типовой план обмена по организации, используемый 1С для обмена со сторонней информационной базой конфигурации УПП (не РИБ) . Скопирован с наименованием "ОбменУППУПП_РИБ_ПоОрганизации"

2) Изменен признак "Распределенная ИБ"

3) Настроен состав (произвольный, зависит от ваших целей). Я отметил все объекты относящиеся к бухгалтерскому и налоговому учетам. Исключил объекты международного учета и свои "дописанные" объекты.

4) В форме списка перезаполнил (автозаполнением) действия формы, для включения предопределенных действий ("Создание начального образа..", "Записать изменения", "Прочитат изменения").

5) Модуль объекта расширил предопределенной процедурой "ПриОтправкеДанныхПодчиненному". И добавил часть процедур из глобального с признаком "локальный_"

(полный текст модуля объекта во вложении на скачивании)

6) Изменил в глобальном модуле "ПроцедурыОбменаУПП" 2 функции:

  1.  ПолучитьЗапросомМассивУзловПоОрганизации(Организация) 
Функция ПолучитьЗапросомМассивУзловПоОрганизации(Организация) Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ОбменУППУПП.Ссылка КАК Ссылка
|ИЗ
|    ПланОбмена.ОбменУППУПП КАК ОбменУППУПП
|        ЛЕВОЕ СОЕДИНЕНИЕ ПланОбмена.ОбменУППУПП.Организации КАК СписокОрганизаций
|        ПО ОбменУППУПП.Ссылка = СписокОрганизаций.Ссылка
|ГДЕ
|    (СписокОрганизаций.Организация В (&СсылкаНаОрганизацию)
|            ИЛИ СписокОрганизаций.Организация ЕСТЬ NULL )
|    И ОбменУППУПП.Ссылка <> &ЭтотУзел";

Запрос.УстановитьПараметр("СсылкаНаОрганизацию", Организация);
Запрос.УстановитьПараметр("ЭтотУзел",              ПланыОбмена.ОбменУППУПП.ЭтотУзел());
//Начало_Вставка@@@
Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ОбменУППУПП.Ссылка КАК Ссылка
|ИЗ
|    ПланОбмена.ОбменУППУПП_РИБ_ПоОрганизации КАК ОбменУППУПП
|        ЛЕВОЕ СОЕДИНЕНИЕ ПланОбмена.ОбменУППУПП_РИБ_ПоОрганизации.Организации КАК СписокОрганизаций
|        ПО ОбменУППУПП.Ссылка = СписокОрганизаций.Ссылка
|ГДЕ
|    (СписокОрганизаций.Организация В (&СсылкаНаОрганизацию)
|            ИЛИ СписокОрганизаций.Организация ЕСТЬ NULL )
|    И ОбменУППУПП.Ссылка <> &ЭтотУзелПолный_ПоОрганизации";

Запрос.УстановитьПараметр("ЭтотУзелПолный_ПоОрганизации", ПланыОбмена.ОбменУППУПП_РИБ_ПоОрганизации.ЭтотУзел());
//Конец_Вставка@@@
МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");

Возврат МассивСсылок;

КонецФункции

2. ПолучитьМассивВсехУзлов()

Функция ПолучитьМассивВсехУзлов() Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ОбменУППУПП.Ссылка КАК Ссылка
|ИЗ
|    ПланОбмена.ОбменУППУПП КАК ОбменУППУПП
|ГДЕ
|    ОбменУППУПП.Ссылка <> &ЭтотУзел";

Запрос.УстановитьПараметр("ЭтотУзел", ПланыОбмена.ОбменУППУПП.ЭтотУзел());
//Начало_Вставка@@@
Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
|    ОбменУППУПППоОрганизациям.Ссылка
|ИЗ
|    ПланОбмена.ОбменУППУПП_РИБ_ПоОрганизации КАК ОбменУППУПППоОрганизациям
|ГДЕ
|    ОбменУППУПППоОрганизациям.Ссылка <> &ЭтотУзелПолный_ПоОрганизации";
Запрос.УстановитьПараметр("ЭтотУзелПолный_ПоОрганизации", ПланыОбмена.ОбменУППУПП_РИБ_ПоОрганизации.ЭтотУзел());
//Конец_Вставка@@@
МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");

Возврат МассивСсылок;

КонецФункции

7)  Изменил в глобальном модуле "ПолныеПрава" процедуру:

ОпределитьФактИспользованияРИБ()


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОбменУППУПП.Ссылка,
| ОбменУППУПП.ДатаНачалаВыгрузкиДокументов КАК ДатаНачалаВыгрузкиДокументов
|ИЗ
| ПланОбмена.ОбменУППУПП КАК ОбменУППУПП
|ГДЕ
| ОбменУППУПП.Ссылка <> &ЭтотУзелПолный";
//Начало_Вставка@@@
Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ОбменУППУПППоОрганизациям.Ссылка,
| ОбменУППУПППоОрганизациям.ДатаНачалаВыгрузкиДокументов КАК ДатаНачалаВыгрузкиДокументов
|ИЗ
| ПланОбмена.ОбменУППУПП_РИБ_ПоОрганизации КАК ОбменУППУПППоОрганизациям
|ГДЕ
| ОбменУППУПППоОрганизациям.Ссылка <> &ЭтотУзелПолный_ПоОрганизации";
Запрос.УстановитьПараметр("ЭтотУзелПолный_ПоОрганизации", ПланыОбмена.ОбменУППУПП_РИБ_ПоОрганизации.ЭтотУзел());
//Конец_Вставка@@@
Запрос.УстановитьПараметр("ЭтотУзелПолный", ПланыОбмена.ОбменУППУПП.ЭтотУзел());

РезультатЗапроса = Запрос.Выполнить();

ЕстьУзлыОбменаУППУПП = НЕ РезультатЗапроса.Пустой();

9)  Теперь можно запустить создание начального образа.

Все. Мы имеем идентичную конфигурацию с данными только по выбранной организации.

10) При необходимости можем сбросить признак подчиненного узла у созданной информационной базы (наример: //infostart.ru/public/340351/) и предоставляем конфигурацию заказчику. 

 

Это на порядок проще и быстрее, чем удалять все лишние ссылки. 

Тестировалось на конфигурации: Управление производственным предприятием, редакция 1.3 (1.3.97.5).

28.02.2024г. перенес локально (в модуль объекта) часть процедур определения ссылок для выгрузки.

Тестировалось на конфигурации: Управление производственным предприятием, редакция 1.3 (1.3.103.2).

3 Comments

  1. smokevg

    У меня ругалось на пустое значение «ПараметрыСеанса.СоответствиеОрганизацийИУзловОбменаУПП», поэтому пришлось в общий модуль «ПолныеПрава» в функции «ОпределитьФактИспользованияРИБ» после

    Запрос.Текст = «ВЫБРАТЬ
    | ОбменУППУПП.Ссылка,
    | ОбменУППУПП.ДатаНачалаВыгрузкиДокументов КАК ДатаНачалаВыгрузкиДокументов
    |ИЗ
    | ПланОбмена.ОбменУППУПП КАК ОбменУППУПП
    |ГДЕ
    | ОбменУППУПП.Ссылка <> &ЭтотУзелПолный»;
    
    Запрос.УстановитьПараметр(«ЭтотУзелПолный», ПланыОбмена.ОбменУППУПП.ЭтотУзел());
    

    Показать

    добавить:

     Запрос.Текст = Запрос.Текст + » ОБЪЕДИНИТЬ ВСЕ
    |ВЫБРАТЬ
    | ОбменУППУПП.Ссылка,
    | ОбменУППУПП.ДатаНачалаВыгрузкиДокументов КАК ДатаНачалаВыгрузкиДокументов
    |ИЗ
    | ПланОбмена.ОбменУППУПП_РИБ_ПоОрганизации  КАК ОбменУППУПП
    |ГДЕ
    | ОбменУППУПП.Ссылка <> &ЭтотУзелПолный_ПоОрганизации»;
    
    Запрос.УстановитьПараметр(«ЭтотУзелПолный_ПоОрганизации», ПланыОбмена.ОбменУППУПП_РИБ_ПоОрганизации .ЭтотУзел());
    

    Показать

    Reply
  2. 9093042

    Вадим, спасибо.

    В описании не указал этот момент. Сейчас подправил.

    С уважением, Александр.

    Reply
  3. nicknick23

    После выполнения приведенной инструкции создается образ базы с документами по выбранной организации. Документы выгружаются без движений, поэтому требуется их перепроведение в новой базе, а после перепроведения суммы по бух.счетам не всегда совпадают. Что нужно подправить, чтобы документы выгружались в создаваемый образ уже со своими движениями?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *