Обработка загрузки движений по счетам бух.учета из баз 1С 7.7 (Бухгалтерия) и 1С 8.3 (Бухгалтерия предприятия 3.0) в консолидирующую базу на БП 3.0



Обработка предназначена для сбора движений по определенным счетам бухгалтерского учета в консолидирующую базу (на основе конфигурации Бухгалтерия предприятия 3.0) из баз Бухгалтерия 7.7 и Бухгалтерия предприятия 3.0 (платформа 8.3). Предоставляется как есть (с настройками под использование на конкретном месте).

В консолидирующую базу БП 3.0 внесены следующие изменения: в справочнике Организации установлен иерархический тип с группами и элементами. В режиме учета добавлены дополнительные реквизиты для справочника Организации (см. скриншот). Заполнение справочника Организации и доп.реквизитов осуществляется синхронизацией с базой Документооборот, где ведется учет Организаций. Можно заполнять вручную. В обработке настроен шаблон счетов бух.учета, предназначенных для загрузки (см.скриншот).

В конфигурации баз-источников можно внести изменения для фиксирования периода изменения данных. В 7.7 дата проведенного документа фиксируется в текстовом файле. В глобальном модуле, в процедуре глПриПроведении() добавляем:

  

  //Фиксирование даты проведенного документа для сбора оборотов
Попытка
ТКСТ      = СоздатьОбъект("Текст");
ДокумДата = Конт.ДатаДок;
ИмяФайла  = КаталогИБ()+"oborot.txt";
Если ФС.СуществуетФайл(ИмяФайла)=1 Тогда
ТКСТ.Открыть(ИмяФайла);
Дата1 = ЗначениеИзСтроки(СокрЛП(ТКСТ.ПолучитьСтроку(1)));
Дата2 = ЗначениеИзСтроки(СокрЛП(ТКСТ.ПолучитьСтроку(2)));
Если (Дата1='  .  .  ') или (Дата1='  .  .    ') Тогда
Дата1 = ДокумДата;
Иначе
Дата1 = Мин(Дата1,ДокумДата);
КонецЕсли;
Если (Дата2='  .  .  ') или (Дата2='  .  .    ') Тогда
Дата2 = ДокумДата;
Иначе
Дата2 = Макс(Дата2,ДокумДата);
КонецЕсли;
ТКСТ.ЗаменитьСтроку(1,ЗначениеВСтроку(Дата1));
ТКСТ.ЗаменитьСтроку(2,ЗначениеВСтроку(Дата2));
Иначе
Дата1 = ДокумДата;
Дата2 = ДокумДата;
ТКСТ.ДобавитьСтроку(ЗначениеВСтроку(Дата1));
ТКСТ.ДобавитьСтроку(ЗначениеВСтроку(Дата2));
КонецЕсли;
ТКСТ.Записать(ИмяФайла);
Исключение
КонецПопытки;

, в 8.3 дата фиксируется в константе. В общем модуле "ПроведениеСервер":

Процедура ПодготовитьНаборыЗаписейКПроведению(Объект, ВыборочноОчищатьРегистры = Истина) Экспорт

Если Константы.ДатаНачИзменений.Получить() = Дата("01.01.0001 0:00:00") Тогда
Константы.ДатаНачИзменений.Установить(Объект.Дата);
Иначе
Константы.ДатаНачИзменений.Установить(Мин(Константы.ДатаНачИзменений.Получить(),Объект.Дата));
КонецЕсли;

Если Константы.ДатаКонИзменений.Получить() = Дата("01.01.0001 0:00:00") Тогда
Константы.ДатаКонИзменений.Установить(Объект.Дата);
Иначе
Константы.ДатаКонИзменений.Установить(Макс(Константы.ДатаКонИзменений.Получить(),Объект.Дата));
КонецЕсли;

Процедура ПодготовитьНаборыЗаписейКОтменеПроведения(Объект) Экспорт

Если Константы.ДатаНачИзменений.Получить() = Дата("01.01.0001 0:00:00") Тогда
Константы.ДатаНачИзменений.Установить(Объект.Дата);
Иначе
Константы.ДатаНачИзменений.Установить(Мин(Константы.ДатаНачИзменений.Получить(),Объект.Дата));
КонецЕсли;

Если Константы.ДатаКонИзменений.Получить() = Дата("01.01.0001 0:00:00") Тогда
Константы.ДатаКонИзменений.Установить(Объект.Дата);
Иначе
Константы.ДатаКонИзменений.Установить(Макс(Константы.ДатаКонИзменений.Получить(),Объект.Дата));
КонецЕсли;

В таком случае, используя флаг "Маркер оборотов" обработка будет собирать данные только за период, зафиксированый как измененный. В противном случае, просто выбирается период, за который будут собраны данные. При автоматической загрузке обработки по расписанию, в соответствии с выбранным параметром запуска (WEEK, NIGHT, DAY) будут отрабатываться соответствующие сценарии загрузки оборотов.

Движения сворачиваются по дням (в разрезе Организаций и субконто) и записываются Операциями.

Если бухучет был переведен с 7.7 на 8.3, обработка будет собирать данные до даты перехода из 7.7, а после из 8.3

Leave a Comment

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