gifts2017

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

Опубликовал Александр Дуденчук (SanchoD) в раздел Обмен - Перенос данных из 1С7.7 в 1C8.X

Обработка предназначена для сбора движений по определенным счетам бухгалтерского учета в консолидирующую базу (на основе конфигурации Бухгалтерия предприятия 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

Скачать файлы

Наименование Файл Версия Размер
ZagruzkaOborotov.epf 2
.epf 1,18Mb
29.11.16
2
.epf 1,18Mb Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа