При внедрении связки программ «1С:Управление торговлей 11» и «1С:Бухгалтерия предприятия 3.0» специалисты регулярно сталкиваются с задачей синхронизации начального состояния баз данных. Если оперативный учет уже развернут и в УТ 11 внесены начальные остатки, возникает необходимость отразить эти данные в БП 3.0 без повторного ручного ввода. Разберем, почему стандартный механизм синхронизации не переносит эти документы и какие существуют практические способы решения задачи.
Проанализируем архитектурные и методологические причины, из-за которых типовая синхронизация через формат EnterpriseData не поддерживает выгрузку остатков по направлению УТ 11 → БП 3.0:
ВводОстатков формирует движения по множеству оперативных регистров накопления (партии товаров, себестоимость, расчеты с клиентами и поставщиками). В «Бухгалтерии предприятия 3.0» документ ВводНачальныхОстатков делает записи строго в регистр бухгалтерии Хозрасчетный в корреспонденции с вспомогательным счетом 000, а также в специализированные регистры подсистем (НДС, УСН).Рассмотрим наиболее простой вариант для небольшого и среднего объема данных, не требующий разработки специализированных правил конвертации.
ВводОстатков и сохраняем табличные части (товары, взаиморасчеты) в табличный документ или файл формата Excel. При наличии характеристик на этом этапе выполняем их преобразование: либо объединяем одинаковые позиции, либо формируем уникальные наименования для номенклатуры в БП.ВводНачальныхОстатков по соответствующему разделу учета (например, «Номенклатура», счета 41.01 или 10.01).ЗагрузкаДанныхИзТабличногоДокумента или встроенную команду «Загрузить из файла» в табличной части документа. Настраиваем сопоставление колонок: номенклатура, количество, цена, сумма, склад, счет учета.Разберем по шагам создание точного механизма переноса с помощью универсального обмена данными:
MDдискриптор (или MD83Exp.epf).ВводОстатков (источник) в документ ВводНачальныхОстатков (приемник).ПередВыгрузкой или ПриВыгрузке определяем вид операции УТ и назначаем соответствующий раздел учета БП 3.0.Номенклатура, Контрагенты, ДоговорыКонтрагентов, Склады с правилами поиска по коду, ИНН/КПП или наименованию.УниверсальныйОбменДаннымиXML, загружаем полученный XML-файл в БП 3.0.Посмотрим на пример внешней обработки, которая запускается на стороне БП 3.0, подключается к УТ 11 через V83.COMConnector и программно формирует документы ввода остатков по товарам на счете 41.01.
Рассмотрим пример кода выборки данных и создания документа:
// Подключение к базе-источнику УТ 11
V83COM = Новый COMОбъект("V83.COMConnector");
ПараметрыПодключения = "File=""C:\Bases\UT""; Usr=""Admin""; Pwd="""";";
СоединениеУТ = V83COM.Connect(ПараметрыПодключения);
// Создание документа в БП 3.0
ДокОстатков = Документы.ВводНачальныхОстатков.СоздатьДокумент();
ДокОстатков.Дата = НачалоДня(ТекущаяДата());
ДокОстатков.Организация = ОрганизацияСсылка;
ДокОстатков.РазделУчета = Перечисления.РазделыУчетаДляВводаОстатков.Товары;
// Запрос к данным УТ 11 через COM
ТекстЗапроса =
"ВЫБРАТЬ
| Товары.Номенклатура.Наименование КАК Наименование,
| Товары.Номенклатура.Артикул КАК Артикул,
| Товары.Количество КАК Количество,
| Товары.Сумма КАК Сумма
|ИЗ
| Документ.ВводОстатков.Товары КАК Товары
|ГДЕ
| Товары.Ссылка.Проведен = ИСТИНА";
ВыборкаCOM = СоединениеУТ.NewObject("Запрос");
ВыборкаCOM.Текст = ТекстЗапроса;
Результат = ВыборкаCOM.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
СтрокаТЧ = ДокОстатков.Товары.Добавить();
// Поиск или создание номенклатуры в текущей базе БП
НоменклатураБП = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Результат.Артикул);
Если Не ЗначениеЗаполнено(НоменклатураБП) Тогда
НоменклатураБП = Справочники.Номенклатура.НайтиПоНаименованию(Результат.Наименование);
КонецЕсли;
СтрокаТЧ.Номенклатура = НоменклатураБП;
СтрокаТЧ.Количество = Результат.Количество;
СтрокаТЧ.Стоимость = Результат.Сумма;
СтрокаТЧ.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах; // Счет 41.01
КонецЦикла;
ДокОстатков.Записать(РежимЗаписиДокумента.Проведение);
Перед проведением загруженных документов обязательно проверим следующие моменты:
41 и 10 недопустимы — обязательно заполняем стоимость.Оборотно-сальдовая ведомость в БП 3.0 и убедимся, что вспомогательный счет 000 закрыт в ноль.