При настройке стандартной синхронизации данных между конфигурациями «1С:Управление торговлей» (ред. 11.4) и «1С:Бухгалтерия предприятия» (ред. 3.0) технические специалисты часто сталкиваются со следующей проблемой. После выполнения первого обмена в базе-приемнике (БП) регистрируются сотни или тысячи ошибок в загруженных документах. При попытке их проведения система выдает диагностическое сообщение: «Не заполнена колонка "Счет авансов" в строке 1 списка "Расшифровка платежа"». Для быстрого контроля результата и поиска проблемных участков в таких случаях применяется автоматическая сверка данных при обмене между базами 1С.
Давайте подробно разберем, почему возникает эта ошибка, как устроены механизмы платформы 1С при обмене данными и какие шаги необходимо предпринять для полного и корректного устранения проблемы без полной очистки базы данных.
Для понимания сути проблемы проанализируем архитектурные различия между двумя конфигурациями:
ОбменДанными.Загрузка = Истина. Это отключает стандартные проверки заполнения реквизитов при записи, чтобы пакет данных мог беспрепятственно загрузиться в базу даже с частично отсутствующей аналитикой. Ошибки «вылезают» позже — в момент автоматического или ручного проведения документов, так как при проведении контроль заполнения обязательных реквизитов (таких как счета авансов) работает в полном объеме.Основной источник проблемы — пустой регистр сведений Счета учета расчетов с контрагентами в базе «1С:Бухгалтерия предприятия». Если в нем не созданы правила по умолчанию, БП 3.0 просто не знает, какие счета подставить в пустые реквизиты загруженных документов.
Распространенная ошибка начинающих специалистов (что подтверждается сообщением №6 на форуме): «Я заполнила счета учета расчетов, но документы все равно не проводятся и выдают ту же ошибку».
Дело в том, что счета расчетов и авансов записываются непосредственно в табличные части документов (например, в табличную часть РасшифровкаПлатежа) в момент их создания или обновления при загрузке. Изменение настроек в регистре сведений не меняет данные ретроспективно в уже записанных в базу документах. Чтобы новые правила учета применились, документы необходимо перезаписать или перепровести с предварительным заполнением реквизитов. Рассмотрим, как решить эту задачу правильно.
Первым делом нам необходимо создать универсальные правила подстановки счетов в базе 1С:Бухгалтерия. Выполним следующие действия:
Организация, Контрагент, Договор и Вид расчетов оставляем пустыми! Это позволит системе использовать данную запись как «правило по умолчанию» для любых контрагентов и организаций.60.0160.0262.0162.0276.02Если в вашей базе ведутся расчеты в иностранной валюте или в условных единицах, обязательно создайте еще одну аналогичную запись, где в поле Вид расчетов укажите значение «В валюте» или «В условных единицах», и пропишите соответствующие валютные счета расчетов (например, 60.21 / 60.22 и 62.21 / 62.22).
Теперь нам нужно сделать так, чтобы настроенные счета учета попали в уже загруженные документы с ошибками. Нам не нужно удалять базу данных или вручную перебивать каждый документ. Рассмотрим два эффективных метода решения этой задачи.
Этот способ является наиболее чистым и методологически верным, так как повторная выгрузка данных из УТ заставит БП перезаписать документы и автоматически заполнить счета учета по новым правилам. При необходимости альтернативного переноса данных можно использовать инструмент для синхронизации платежно-расчетных документов между УТ и БП.
Поступление на расчетный счет, Списание с расчетного счета, Приходный кассовый ордер).Если повторная выгрузка по каким-то причинам нежелательна (например, в УТ уже внесены ручные изменения, которые нельзя затирать), мы можем принудительно прописать счета прямо в базе БП 3.0 с помощью встроенного инструмента группового изменения реквизитов.
Списание с расчетного счета.Проведен Равно Ложь и укажем нужный период.Расшифровка платежа.Счет расчетов и Счет авансов.60.01 (или 62.01 в зависимости от вида документа), а для счета авансов — 60.02 (или 62.02).Для программистов 1С, желающих автоматизировать процесс перерегистрации измененных документов без использования стандартного интерфейса «Состав отправляемых данных», приведем пример кода на встроенном языке. Этот код позволяет быстро зарегистрировать документы определенного типа за выбранный период для узла обмена:
Процедура ЗарегистрироватьДокументыДляОбмена(ИмяУзла, ТипДокументаСтрокой, ДатаНачала, ДатаОкончания) Экспорт
УзелОбмена = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию(ИмяУзла);
Если УзелОбмена.Пустая() Тогда
ВызватьИсключение "Не найден указанный узел обмена!";
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Док.Ссылка КАК Ссылка
|ИЗ
| Документ." + ТипДокументаСтрокой + " КАК Док
|ГДЕ
| Док.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Выборка.Ссылка);
КонецЦикла;
Сообщить("Успешно зарегистрировано объектов: " + Выборка.Количество());
КонецПроцедуры
Иногда даже при правильно настроенном регистре счетов в БП 3.0 счета авансов могут очищаться или заполняться некорректно. Проанализируем еще один важный фактор — детализацию расчетов в договорах контрагентов в УТ 11.
Если в настройках договора в УТ выбран вариант детализации расчетов «По расчетным документам», но при этом в платежном документе не заполнена спецификация зачета (не сопоставлен конкретный документ отгрузки или поступления), то при выгрузке в БП механизм обмена может принудительно установить вариант зачета авансов «Не зачитывать» или «По документу» с пустым значением. Это ломает стандартный алгоритм подстановки счетов.
Для минимизации подобных ошибок рекомендуется использовать в УТ договоры с детализацией расчетов «По договорам» (в БП это трансформируется в автоматический зачет авансов по методу ФИФО) или строго контролировать сопоставление первичных документов в торговой базе перед запуском синхронизации. Если из-за некорректного обмена на субсчетах 60 и 62 уже возникли перекосы, для исправления ситуации можно воспользоваться обработкой для поиска ошибок во взаиморасчетах и зачета авансов.