Перенос регистра бухгалтерии "Хозрасчетный" в идентичную конфигурацию

12.08.12

Интеграция - Перенос данных 1C

Был такой случай: у клиента при реструктуризации хозрасчетного затирались все субконто.
Нужно было после реструктуризации перенести все данные из копии вручную. Проблема стала в переносе ссылок между базами, так как ссылка из одной базы после перемещения через внешнее соединение в другую базу ставала "чужой" в той базе, хоть УникальныйИдентификатор оставался одинаковый.
Решил выложить обработку, которая успешно переносит все данные регистра бухгалтерии хозрасчетного через внешнее соединение.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Выгрузка хозрасчетного через внешнее соединение
.epf 7,74Kb
35
35 Скачать (1 SM) Купить за 1 850 руб.

Обработка запускается на базе, куда нужно перенести данные, и подключается к базе, через внешнее соединение, откуда нужно перенести данные. Вызывает функцию из модуля внешнего соединения подключенной базы, которая возвращает данные (ТЗ с данными хозрасчетного) и в текущей базе замещает все данные регистра полученными из другой базы.

В общем, в базе, к которой подключается обработка, в модуле внешнего соединения должна быть процедура:

// Процедура в модуле внешнего соединения подключаемой базы:  
        Функция ПолучитьДанныеТаблицыОбъекта() Экспорт   
           Запрос = Новый Запрос;  
           Запрос.Текст = "ВЫБРАТЬ  
           |   *  
           |ИЗ  
           |   РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
           |ГДЕ
           |   ХозрасчетныйДвиженияССубконто.Регистратор = &Регистратор";  
           Запрос.УстановитьПараметр("Регистратор",Документы.ЗакрытиеМесяца.НайтиПоНомеру("ГД000000001",'20110731'));
           ТЗ = Запрос.Выполнить().Выгрузить();  
           ТЗ.Сортировать("Регистратор");  
           ТЗ.Колонки.Добавить("СубконтоДт1Тип");  
           ТЗ.Колонки.Добавить("СубконтоДт2Тип");  
           ТЗ.Колонки.Добавить("СубконтоДт3Тип");  
           //ТЗ.Колонки.Добавить("СубконтоДт4Тип");  
           ТЗ.Колонки.Добавить("СубконтоКт1Тип");  
           ТЗ.Колонки.Добавить("СубконтоКт2Тип");  
           ТЗ.Колонки.Добавить("СубконтоКт3Тип");  
           //ТЗ.Колонки.Добавить("СубконтоКт4Тип");     
           ТЗ.Колонки.Добавить("РегистраторСсылка");  
           ТЗ.Колонки.Добавить("СчетДтСсылка");  
           ТЗ.Колонки.Добавить("СубконтоДт1Ссылка");  
           ТЗ.Колонки.Добавить("СубконтоДт2Ссылка");  
           ТЗ.Колонки.Добавить("СубконтоДт3Ссылка");  
           //ТЗ.Колонки.Добавить("СубконтоДт4Ссылка");  
           ТЗ.Колонки.Добавить("СчетКтСсылка");  
           ТЗ.Колонки.Добавить("СубконтоКт1Ссылка");  
           ТЗ.Колонки.Добавить("СубконтоКт2Ссылка");  
           ТЗ.Колонки.Добавить("СубконтоКт3Ссылка");  
           //ТЗ.Колонки.Добавить("СубконтоКт4Ссылка");  
           ТЗ.Колонки.Добавить("ОрганизацияСсылка");  
           ТЗ.Колонки.Добавить("ВалютаДтСсылка");  
           ТЗ.Колонки.Добавить("ВалютаКтСсылка");  
           ТЗ.Колонки.Добавить("НалоговоеНазначениеДтСсылка");  
           ТЗ.Колонки.Добавить("НалоговоеНазначениеКтСсылка");
           ТЗ.Колонки.Добавить("СчетДополнительныйСсылка");  
           Для Каждого Строка Из ТЗ Цикл  
              Строка.СубконтоДт1Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоДт1);  
              Строка.СубконтоДт2Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоДт2);  
              Строка.СубконтоДт3Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоДт3);  
              //Строка.СубконтоДт4Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоДт4);  
              Строка.СубконтоКт1Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоКт1);  
              Строка.СубконтоКт2Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоКт2);  
              Строка.СубконтоКт3Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоКт3);  
              //Строка.СубконтоКт4Тип = ЗначениеВСтрокуВнутр(Строка.ВидСубконтоКт4);        
              Строка.РегистраторСсылка = ЗначениеВСтрокуВнутр(Строка.Регистратор);  
              Строка.СчетДтСсылка = ЗначениеВСтрокуВнутр(Строка.СчетДт);  
              Строка.СубконтоДт1Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоДт1);  
              Строка.СубконтоДт2Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоДт2);  
              Строка.СубконтоДт3Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоДт3);  
              //Строка.СубконтоДт4Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоДт4);  
              Строка.СчетКтСсылка = ЗначениеВСтрокуВнутр(Строка.СчетКт);  
              Строка.СубконтоКт1Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоКт1);  
              Строка.СубконтоКт2Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоКт2);  
              Строка.СубконтоКт3Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоКт3);  
              //Строка.СубконтоКт4Ссылка = ЗначениеВСтрокуВнутр(Строка.СубконтоКт4);  
              Строка.ОрганизацияСсылка = ЗначениеВСтрокуВнутр(Строка.Организация);  
              Строка.ВалютаДтСсылка = ЗначениеВСтрокуВнутр(Строка.ВалютаДт);  
              Строка.ВалютаКтСсылка = ЗначениеВСтрокуВнутр(Строка.ВалютаКт);  
              Строка.НалоговоеНазначениеДтСсылка = ЗначениеВСтрокуВнутр(Строка.НалоговоеНазначениеДт);  
              Строка.НалоговоеНазначениеКтСсылка = ЗначениеВСтрокуВнутр(Строка.НалоговоеНазначениеКт);  
              Строка.СчетДополнительныйСсылка = ЗначениеВСтрокуВнутр(Строка.СчетДополнительный);     
           КонецЦикла;  
           Возврат(ТЗ);  
        КонецФункции

Как видим в запросе стоит отбор по регистратору. Таким образом перетянутся данные только одного документа. Если убрать отбор - перетянутся все данные.

А это модуль формы обработки, которая запускается в базе, куда нужно перенести данные:

Перем ТекПоказатьСостояние;  
        Процедура КнопкаВыполнитьНажатие(Кнопка)  

           ПоказатьСостояние("Попытка подключения...");  
           Соединение = Новый COMObject("V82.COMConnector");   

           База = Соединение.Connect("Srvr=""server1c"";Ref=""GOR_B"";Usr=""Логин"";Pwd=""36787463""");         // Для серверной базы
         //    База = Соединение.Connect("File=""D:\Bases\GOR_B"";Usr=""Логин"";Pwd=""36787463""");  // Для файловой базы

           ПоказатьСостояние("Выполняется получение данных из удаленной базы...");  
           ТЗ = База.ПолучитьДанныеТаблицыОбъекта();   
           КолВсего = ТЗ.Количество();  
           ПоказатьСостояние("Выполняется заполнене данных на этой базе...");  

           Итератор = 1;  

           ПервыйРаз = Истина;  
           ТекРегистратор = Неопределено;  
           НаборЗаписей = Неопределено;  
           Для Каждого Выборка Из ТЗ Цикл        
              Если ЗначениеИзСтрокиВнутр(Выборка.РегистраторСсылка) <> ТекРегистратор Тогда  
                 Если ПервыйРаз Тогда  
                    ПервыйРаз = Ложь;  
                 Иначе           
                    Попытка  
                       НаборЗаписей.Записать();  
                    Исключение  
                       Сообщить("Не удалось присвоить регистратора: "+ТекРегистратор);  
                       Возврат;  
                    КонецПопытки  
                 КонецЕсли;  
                 ТекРегистратор = ЗначениеИзСтрокиВнутр(Выборка.РегистраторСсылка);  
                 НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();  
                 НаборЗаписей.Отбор.Регистратор.Установить(ТекРегистратор);
                 //НаборЗаписей.Записать();
              КонецЕсли;  
              ПоказатьСостояние("Выполняется заполнене данных "+Окр(Итератор*100 /КолВсего,6)+" %");  
              Итератор = Итератор + 1;  
              Запись = НаборЗаписей.Добавить();  
              ЗаполнитьЗначенияСвойств(Запись,Выборка);  
              Запись.Регистратор = ЗначениеИзСтрокиВнутр(Выборка.РегистраторСсылка);  
              Запись.СчетДт = ЗначениеИзСтрокиВнутр(Выборка.СчетДтСсылка);  
              Запись.СубконтоДт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт1Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт1Ссылка);  
              Запись.СубконтоДт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт2Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт2Ссылка);  
              Запись.СубконтоДт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт3Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт3Ссылка);  
              //Запись.СубконтоДт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт4Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоДт4Ссылка);  
              Запись.СчетКт = ЗначениеИзСтрокиВнутр(Выборка.СчетКтСсылка);  
              Запись.СубконтоКт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт1Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт1Ссылка);  
              Запись.СубконтоКт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт2Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт2Ссылка);  
              Запись.СубконтоКт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт3Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт3Ссылка);  
              //Запись.СубконтоКт[ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт4Тип)] = ЗначениеИзСтрокиВнутр(Выборка.СубконтоКт4Ссылка);  
              Запись.Организация = ЗначениеИзСтрокиВнутр(Выборка.ОрганизацияСсылка);  
              Запись.ВалютаДт = ЗначениеИзСтрокиВнутр(Выборка.ВалютаДтСсылка);  
              Запись.ВалютаКт = ЗначениеИзСтрокиВнутр(Выборка.ВалютаКтСсылка);
              Запись.НалоговоеНазначениеДт = ЗначениеИзСтрокиВнутр(Выборка.НалоговоеНазначениеДтСсылка);  
              Запись.НалоговоеНазначениеКт = ЗначениеИзСтрокиВнутр(Выборка.НалоговоеНазначениеКтСсылка);
              Запись.СчетДополнительный = ЗначениеИзСтрокиВнутр(Выборка.СчетДополнительныйСсылка);     
           КонецЦикла;  
           НаборЗаписей.Записать();  

        КонецПроцедуры  

        Процедура ПоказатьСостояние(Текст)  
           ТекПоказатьСостояние = Текст;  
           Состояние(Текст);  
        КонецПроцедуры  

        Процедура ОбновлениеОтображения()  
           Состояние(ТекПоказатьСостояние);  

       КонецПроцедуры

Конечно при нажатии на кнопку "Выполнить" запускается процедура "КнопкаВыполнитьНажатие".

Обработка перетяжки добавлена.

Опубликовал по своей оригинальной статье здесь: http://pro1c.org.ua/index.php?showtopic=4883

См. также

SALE! 10%

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

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

55778 50200 руб.

04.08.2015    166775    334    278    

375

SALE! 10%

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

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

35000 31500 руб.

15.12.2021    24192    171    51    

130

SALE! 15%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 руб.

12.06.2017    141848    799    297    

420

SALE! 10%

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

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

35000 31500 руб.

23.07.2020    51570    228    70    

187

SALE! 10%

Перенос данных 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 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    72212    182    150    

124

SALE! 10%

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    171312    302    257    

378

SALE! 10%

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

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

55778 50200 руб.

29.10.2018    56303    59    105    

61

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

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

15300 руб.

18.02.2016    187032    590    509    

527
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. m_aster 114 26.09.12 06:54 Сейчас в теме
Не открывается, ошибка хранилища!(
2. modul 158 27.09.12 12:23 Сейчас в теме
Странно, попробуйте скопируйте код из текста статьи.
3. a-m-gv 16 12.12.13 22:44 Сейчас в теме
Идея понравилась - за это плюсик.
НО выходит ошибка как и у m_asret. У меня обычная файловая база.
4. IMSensei 20.08.17 03:19 Сейчас в теме
5. Bunny 01.08.18 11:16 Сейчас в теме
6. blockcode 39 20.02.19 13:42 Сейчас в теме
Ошибка при выполнении файловой операции 'D:\1C\Обработки\ВыгрузкаХозрасчетногоЧерезВнешнееСоединение_20­12_03.epf'
по причине:
Неверный формат хранилища данных 'file://D:/1C/Обработки/ВыгрузкаХозрасчетногоЧерезВнешнееСоединение_20­12_03.epf'
7. Vetal012 19 15.07.20 15:27 Сейчас в теме
Обработка не открывается!
Ошибка при выполнении файловой операции 'C:\Users\vitalii.vsc\Desktop\PUBID_147018-ВыгрузкаХозрасчетногоЧерезВнешнееСоединение_2012_03.epf'
по причине:
Неверный формат хранилища данных 'file://C:/Users/vitalii.vsc/Desktop/PUBID_147018-ВыгрузкаХозрасчетногоЧерезВнешнееСоединение_2012_03.epf'
8. VitalyKepov 53 27.04.22 22:56 Сейчас в теме
Обработку не качал. Сделал по описанию: всё прекрасно работает.
Спасибо)
Оставьте свое сообщение