Загрузка остатков из 1С6 в 1С8

27.03.12

Интеграция - Внешние источники данных

Часто при организации обмена данными с 1С6 требуется наладить перенос проводок из 1С6 за период.
Но тут же возникает вопрос и о переносе начальных остатков.
Так вот, если разработан механизм загрузки движений из 1с6 из файла проводок 1sboper.dbf, то можно просто сэмулировать файл 1sboper.dbf, но в нем оставить только проводки с нулевым счетом и загрузить этот файл на дату загрузки остатков.
Таким образом не придется делать дополнительный механизм. Единственное - нужно свернуть остатки в 1sboper.dbf. Как это сделать - эта статья.

Для получения остатков нам нужно прочитать все движения исходного файла 1sboper.dbf, а потом просто свернуть их по счету и субконто.
Единственно, что счет в 1С6 содержит еще штамп даты, который нужно удалить.
Проводки формируем в корреспонденции со счетом 00.
Каталог - это каталог, где хранится исходный файл: 1sboper.dbf
КаталогЗагр - это каталог, куда помещается файл результата с остатками: 1sboper.dbf

6 ноября 2008 года я проверил этот код, все сворачивается идеально и совпадает с обороткой в 1С6. Рекомендую.

Меня спрашивали - почему я не сконвертировал данные в 1С7, а оттуда в 1С8 или выгрузить из 1С7.
Дело в том, что баз 1С6 много (50 штук), проще считать данные из DBF, т.к. квалификации операторов не хватит конвертировать базы из 1С6 в 1С7.
Кроме того, у нас нет лицензий на 1С7, да и 1С7 я уже три года не занимался, неохота вспоминать.

Смотрим код:

    БД_dbf = Новый XBase;
    БД_dbf.Кодировка = КодировкаXBase.OEM;
    БД_dbf.ОткрытьФайл(Каталог+"\1SBOPER.dbf");

    флОтладка = ложь;      

    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Schet");
    ТЗ.Колонки.Добавить("Subkonto");
    ТЗ.Колонки.Добавить("OPERVAL");
    ТЗ.Колонки.Добавить("OPERSUM");       
    ТЗ.Колонки.Добавить("OPERSUMV");      
    ТЗ.Колонки.Добавить("OPERKOL");          
    ТЗ.Индексы.Добавить("Schet,Subkonto");

    Счетчик = 0;
    флБДПервая = истина;
    Пока НЕ БД_dbf.ВКонце() И (флБДПервая ИЛИ БД_dbf.Следующая())  Цикл 
        флБДПервая = ложь;             
        ОбработкаПрерыванияПользователя();

        Счетчик = Счетчик + 1;

        Если Счетчик % 100 = 0 Тогда
            Состояние("Загрузка для свертки остатков " + Счетчик);
        КонецЕсли;

        Если Дата(БД_dbf.OPERDATA) > КонецДня(ДатаОстатков) Тогда
            Продолжить;
        КонецЕсли;

        Если СтрЧислоВхождений(Строка(БД_dbf.OPERNO), "D") > 0 Тогда
            Продолжить;
        КонецЕсли;                                                    

        //  Загрузка дебета            
        НоваяСтрокаТЗ          = ТЗ.Добавить();                      
        НоваяСтрокаТЗ.Schet    = СокрЛП(БД_dbf.OPERIND1);          
        //Убиваем лишние 8 символов в коде счета
        НоваяСтрокаТЗ.Schet    = Лев(НоваяСтрокаТЗ.Schet, СтрДлина(НоваяСтрокаТЗ.Schet)-8);          
        НоваяСтрокаТЗ.Subkonto = БД_dbf.SPSKNO1;    
        НоваяСтрокаТЗ.OPERVAL  = БД_dbf.OPERVAL;           
        НоваяСтрокаТЗ.OPERSUM  = БД_dbf.OPERSUM;           
        НоваяСтрокаТЗ.OPERSUMV = БД_dbf.OPERSUMV;          
        НоваяСтрокаТЗ.OPERKOL  = БД_dbf.OPERKOL;              

        //  Загрузка кредита   
        НоваяСтрокаТЗ          = ТЗ.Добавить();
        НоваяСтрокаТЗ.Schet    = СокрЛП(БД_dbf.OPERIND2);
        НоваяСтрокаТЗ.Schet    = Лев(НоваяСтрокаТЗ.Schet, СтрДлина(НоваяСтрокаТЗ.Schet)-8);          
        НоваяСтрокаТЗ.Subkonto = БД_dbf.SPSKNO2;
        НоваяСтрокаТЗ.OPERVAL  = БД_dbf.OPERVAL;
        НоваяСтрокаТЗ.OPERSUM  = -БД_dbf.OPERSUM;
        НоваяСтрокаТЗ.OPERSUMV = -БД_dbf.OPERSUMV;
        НоваяСтрокаТЗ.OPERKOL  = -БД_dbf.OPERKOL;

    КонецЦикла; 

    БД_dbf.ЗакрытьФайл();
    ТЗ.Свернуть("Schet,Subkonto,OPERVAL","OPERSUM,OPERSUMV,OPERKOL");
    // Создание нового файла dbf   
    БД_dbf.Поля.Добавить("OPERSOD", "S", 50);
    БД_dbf.Поля.Добавить("SPSKNO1", "S", 20);
    БД_dbf.Поля.Добавить("SPSKNO2", "S", 20);
    БД_dbf.Поля.Добавить("OPERSUM", "N",  14, 2);
    БД_dbf.Поля.Добавить("OPERSUMV","N",  14, 2);
    БД_dbf.Поля.Добавить("OPERKOL", "N",  14, 3);
    БД_dbf.Поля.Добавить("OPERVAL", "S",  3);
    БД_dbf.Поля.Добавить("OPERDATA","D",   ); 
    БД_dbf.Поля.Добавить("OPERWPNO","S",  2); 
    БД_dbf.Поля.Добавить("OPERFL",  "S",  1); 
    БД_dbf.Поля.Добавить("OPERV",   "S",  2);  
    БД_dbf.Поля.Добавить("OPERNO",  "S", 12); 
    БД_dbf.Поля.Добавить("OPERS",   "S",  1); 
    БД_dbf.Поля.Добавить("OPERSP",  "S",  5);
    БД_dbf.Поля.Добавить("OPERIND1","S", 15);
    БД_dbf.Поля.Добавить("OPERIND2","S", 15);  
    БД_dbf.Поля.Добавить("OPERID",  "S", 12);
    БД_dbf.Поля.Добавить("OPERN",   "S",  5);

    БД_dbf.Кодировка = КодировкаXBase.OEM;

    БД_dbf.СоздатьФайл(КаталогЗагр + "\1SBOPER.dbf",);    
    БД_dbf.АвтоСохранение = Истина; 

    Сч = 0;

    Для  Каждого СтрокаТЗ Из ТЗ Цикл 
        //Пропускаем мусор...
        Если СтрокаТЗ.OPERSUM = 0 И  СтрокаТЗ.OPERSUMV = 0 И СтрокаТЗ.OPERKOL = 0 Тогда
            Продолжить;
        КонецЕсли;

        //Выделяем счет
        ТекСчет = СокрЛП(СтрокаТЗ.Schet);
        Поз = Найти(ТекСчет, ".");
        Если  Поз <> 0 Тогда
            ТекСчет = СокрЛП(Лев(ТекСчет, Поз - 1));
        КонецЕсли;

        //Пропускаем ненужные счета остатков ...
        Если не флОтладка И Найти(ПереченьПропускаемыхСчетов, СокрЛП(ТекСчет)+";") <> 0 Тогда
            Продолжить;
        КонецЕсли;

        Если флОтладка Тогда
            Если ТекСчет<>"20" ИЛИ Найти(СтрокаТЗ.Subkonto, "1006") = 0 ИЛИ Найти(СтрокаТЗ.Subkonto, "2") = 0 Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;

        Сч = Сч + 1;

        Если Сч % 10 =0  Тогда
            Состояние("Свертка остатков, формирование DBF: " + Сч);
            ОбработкаПрерыванияПользователя();
        КонецЕсли;

        БД_dbf.Добавить();    
        БД_dbf.OPERSOD = "Остатки получены обработкой от "+ Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
        Если СтрокаТЗ.OPERSUM >= 0 Тогда
            БД_dbf.OPERIND1 = СтрокаТЗ.Schet; 
            БД_dbf.SPSKNO1  = СтрокаТЗ.Subkonto; 
            БД_dbf.OPERIND2 = "00"; 
            БД_dbf.SPSKNO2  = ""; 
            Знак = 1;
        Иначе
            БД_dbf.OPERIND1 = "00"; 
            БД_dbf.SPSKNO1  = ""; 
            БД_dbf.OPERIND2 = СтрокаТЗ.Schet; 
            БД_dbf.SPSKNO2  = СтрокаТЗ.Subkonto; 
            Знак = -1;
        КонецЕсли;

        БД_dbf.OPERVAL  = СтрокаТЗ.OPERVAL; 
        БД_dbf.OPERDATA = КонецДня(ДатаОстатков); 

        БД_dbf.OPERSUM  = Знак * СтрокаТЗ.OPERSUM; 
        БД_dbf.OPERSUMV = Знак * СтрокаТЗ.OPERSUMV; 
        БД_dbf.OPERKOL  = Знак * СтрокаТЗ.OPERKOL; 

        //Для невалютных счетов просто ставим доллары
        Если Найти(ПереченьВалютныхСчетов, СокрЛП(ТекСчет)+";") = 0 Тогда
            БД_dbf.OPERSUMV = Знак*СтрокаТЗ.OPERSUM;  //Сумма в валюте равна сумме учетной
            БД_dbf.OPERVAL = 1;  //Доллары
        КонецЕсли;

    КонецЦикла; 

    БД_dbf.ЗакрытьФайл(); 

ПереченьПропускаемыхСчетов - строка с кодами пропускаемых счетов, коды разделяются ";", заканчивается на ";"
ПереченьВалютныхСчетов - строка с кодами валютных счетов, коды разделяются ";", заканчивается на ";"

См. также

SALE! 20%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

45650 36520 руб.

04.08.2015    159726    364    267    

345

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 22572 руб.

12.06.2017    134970    721    291    

388

SALE! 20%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

34650 27720 руб.

15.04.2019    68442    180    138    

111

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22459    19    1    

22

SALE! 20%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

43450 34760 руб.

03.12.2020    34179    80    58    

78

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 25200 руб.

23.07.2020    46319    196    64    

158

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9217    9    8    

10

SALE! 10%

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 25200 руб.

15.12.2021    20261    132    38    

90
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
0. fixin 4252 02.04.12 21:43 Сейчас в теме
Часто при организации обмена данными с 1С6 требуется наладить перенос проводок из 1С6 за период.
Но тут же возникает вопрос и о переносе начальных остатков.
Так вот, если разработан механизм загрузки движений из 1с6 из файла проводок 1sboper.dbf, то можно просто сэмулировать файл 1sboper.dbf, но в нем оставить только проводки с нулевым счетом и загрузить этот файл на дату загрузки остатков.
Таким образом не придется делать дополнительный механизм. Единственное - нужно свернуть остатки в 1sboper.dbf. Как это сделать - эта статья.

Перейти к публикации

1. klel 02.04.12 21:43 Сейчас в теме
Спасибо полезная информация
Оставьте свое сообщение