Почему не заполняются счета авансов при обмене УТ 11 и БП 3.0 и как это исправить?

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При настройке стандартной синхронизации данных между конфигурациями «1С:Управление торговлей» (ред. 11.4) и «1С:Бухгалтерия предприятия» (ред. 3.0) технические специалисты часто сталкиваются со следующей проблемой. После выполнения первого обмена в базе-приемнике (БП) регистрируются сотни или тысячи ошибок в загруженных документах. При попытке их проведения система выдает диагностическое сообщение: «Не заполнена колонка "Счет авансов" в строке 1 списка "Расшифровка платежа"». Для быстрого контроля результата и поиска проблемных участков в таких случаях применяется автоматическая сверка данных при обмене между базами 1С.

Давайте подробно разберем, почему возникает эта ошибка, как устроены механизмы платформы 1С при обмене данными и какие шаги необходимо предпринять для полного и корректного устранения проблемы без полной очистки базы данных.

Выясняем причину возникновения ошибки

Для понимания сути проблемы проанализируем архитектурные различия между двумя конфигурациями:

  1. В «1С:Управление торговлей» отсутствует план счетов бухгалтерского учета. Программа оперирует исключительно управленческими терминами и регистрами накопления (взаиморасчеты, расчеты с клиентами/поставщиками). Соответственно, при выгрузке платежных или отгрузочных документов УТ передает только аналитику: контрагента, договор, сумму, ставку НДС и статью ДДС.
  2. Бухгалтерские счета должны определяться на стороне БП 3.0 в момент загрузки. За этот процесс отвечает встроенный алгоритм конфигурации-приемника. Программа пытается автоматически определить нужные счета расчетов (например, 60.01, 62.01) и счета авансов (60.02, 62.02), используя специализированный регистр сведений.
  3. Особенности записи объектов при обмене. В процессе синхронизации документы записываются в базу БП с установленным свойством ОбменДанными.Загрузка = Истина. Это отключает стандартные проверки заполнения реквизитов при записи, чтобы пакет данных мог беспрепятственно загрузиться в базу даже с частично отсутствующей аналитикой. Ошибки «вылезают» позже — в момент автоматического или ручного проведения документов, так как при проведении контроль заполнения обязательных реквизитов (таких как счета авансов) работает в полном объеме.

Основной источник проблемы — пустой регистр сведений Счета учета расчетов с контрагентами в базе «1С:Бухгалтерия предприятия». Если в нем не созданы правила по умолчанию, БП 3.0 просто не знает, какие счета подставить в пустые реквизиты загруженных документов.

Почему ручная настройка регистра не исправляет уже загруженные документы?

Распространенная ошибка начинающих специалистов (что подтверждается сообщением №6 на форуме): «Я заполнила счета учета расчетов, но документы все равно не проводятся и выдают ту же ошибку».

Дело в том, что счета расчетов и авансов записываются непосредственно в табличные части документов (например, в табличную часть РасшифровкаПлатежа) в момент их создания или обновления при загрузке. Изменение настроек в регистре сведений не меняет данные ретроспективно в уже записанных в базу документах. Чтобы новые правила учета применились, документы необходимо перезаписать или перепровести с предварительным заполнением реквизитов. Рассмотрим, как решить эту задачу правильно.

Шаг 1. Настройка регистра «Счета учета расчетов с контрагентами» в БП 3.0

Первым делом нам необходимо создать универсальные правила подстановки счетов в базе 1С:Бухгалтерия. Выполним следующие действия:

  1. Перейдем в раздел Главное, выберем пункт План счетов.
  2. В верхней части открывшегося окна перейдем по гиперссылке Счета учета расчетов с контрагентами.
  3. Создадим универсальную (общую) запись, которая будет применяться ко всем операциям, для которых не заданы частные правила. Для этого нажмем кнопку Создать.
  4. Важно: Поля Организация, Контрагент, Договор и Вид расчетов оставляем пустыми! Это позволит системе использовать данную запись как «правило по умолчанию» для любых контрагентов и организаций.
  5. В полях счетов учета укажем стандартные значения:
    • Счет учета расчетов с поставщиком: 60.01
    • Счет учета авансов выданных: 60.02
    • Счет учета расчетов с покупателем: 62.01
    • Счет учета авансов полученных: 62.02
    • Счет учета расчетов по претензиям: 76.02
  6. Сохраним настройку нажатием на кнопку Записать и закрыть.

Если в вашей базе ведутся расчеты в иностранной валюте или в условных единицах, обязательно создайте еще одну аналогичную запись, где в поле Вид расчетов укажите значение «В валюте» или «В условных единицах», и пропишите соответствующие валютные счета расчетов (например, 60.21 / 60.22 и 62.21 / 62.22).

Шаг 2. Обновление реквизитов в существующих документах

Теперь нам нужно сделать так, чтобы настроенные счета учета попали в уже загруженные документы с ошибками. Нам не нужно удалять базу данных или вручную перебивать каждый документ. Рассмотрим два эффективных метода решения этой задачи.

Способ А. Перерегистрация документов к обмену в УТ (Рекомендуемый)

Этот способ является наиболее чистым и методологически верным, так как повторная выгрузка данных из УТ заставит БП перезаписать документы и автоматически заполнить счета учета по новым правилам. При необходимости альтернативного переноса данных можно использовать инструмент для синхронизации платежно-расчетных документов между УТ и БП.

  1. В базе «1С:Бухгалтерия предприятия» перейдем в список непроведенных документов и пометим на удаление те платежные документы, которые загрузились с ошибками.
  2. Перейдем в базу «1С:Управление торговлей».
  3. Откроем раздел НСИ и администрирование -> Синхронизация данных.
  4. Напротив нашей настройки обмена нажмем кнопку Состав отправляемых данных (иконка с синей шестеренкой или кнопка изменения регистрации).
  5. В открывшемся окне регистрации изменений найдем нужные типы документов (например, Поступление на расчетный счет, Списание с расчетного счета, Приходный кассовый ордер).
  6. Нажмем кнопку Зарегистрировать -> Зарегистрировать изменения семейства объектов или выберем регистрацию за определенный период.
  7. После того как документы зарегистрированы к отправке, запустим процесс синхронизации данных. При повторной загрузке документов БП 3.0 обратится к нашему настроенному регистру счетов и корректно заполнит счета учета расчетов и счета авансов. Если операцию требуется выполнять регулярно, можно автоматизировать обмен данными между базами по расписанию.

Способ Б. Групповая обработка в БП (Без повторной выгрузки)

Если повторная выгрузка по каким-то причинам нежелательна (например, в УТ уже внесены ручные изменения, которые нельзя затирать), мы можем принудительно прописать счета прямо в базе БП 3.0 с помощью встроенного инструмента группового изменения реквизитов.

  1. В БП 3.0 перейдем в раздел Администрирование -> Обслуживание -> Корректировка данных -> Групповое изменение реквизитов.
  2. В поле «Выбирать элементы» выберем нужный тип документов, например, Списание с расчетного счета.
  3. Добавим критерий отбора (ссылка «Добавить условие отбора»): Проведен Равно Ложь и укажем нужный период.
  4. Нажмем кнопку Дополнительные параметры внизу формы и обязательно установим флаг Режим разработчика. Без этого режима программа не позволит нам редактировать реквизиты табличных частей объектов.
  5. В списке доступных для изменения реквизитов найдем подчиненную таблицу Расшифровка платежа.
  6. Установим флажки напротив полей Счет расчетов и Счет авансов.
  7. В колонке «Новое значение» укажем для счета расчетов — 60.01 (или 62.01 в зависимости от вида документа), а для счета авансов — 60.02 (или 62.02).
  8. Нажмем кнопку Изменить реквизиты. Программа обновит значения в табличных частях всех выбранных документов, после чего их можно будет без проблем провести.

Программный метод регистрации документов к обмену

Для программистов 1С, желающих автоматизировать процесс перерегистрации измененных документов без использования стандартного интерфейса «Состав отправляемых данных», приведем пример кода на встроенном языке. Этот код позволяет быстро зарегистрировать документы определенного типа за выбранный период для узла обмена:


Процедура ЗарегистрироватьДокументыДляОбмена(ИмяУзла, ТипДокументаСтрокой, ДатаНачала, ДатаОкончания) Экспорт
    
    УзелОбмена = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию(ИмяУзла);
    Если УзелОбмена.Пустая() Тогда
        ВызватьИсключение "Не найден указанный узел обмена!";
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Док.Ссылка КАК Ссылка
        |ИЗ
        |   Документ." + ТипДокументаСтрокой + " КАК Док
        |ГДЕ
        |   Док.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
        
    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Выборка.Ссылка);
    КонецЦикла;
    
    Сообщить("Успешно зарегистрировано объектов: " + Выборка.Количество());
    
КонецПроцедуры

Проверяем настройки договоров в УТ 11

Иногда даже при правильно настроенном регистре счетов в БП 3.0 счета авансов могут очищаться или заполняться некорректно. Проанализируем еще один важный фактор — детализацию расчетов в договорах контрагентов в УТ 11.

Если в настройках договора в УТ выбран вариант детализации расчетов «По расчетным документам», но при этом в платежном документе не заполнена спецификация зачета (не сопоставлен конкретный документ отгрузки или поступления), то при выгрузке в БП механизм обмена может принудительно установить вариант зачета авансов «Не зачитывать» или «По документу» с пустым значением. Это ломает стандартный алгоритм подстановки счетов.

Для минимизации подобных ошибок рекомендуется использовать в УТ договоры с детализацией расчетов «По договорам» (в БП это трансформируется в автоматический зачет авансов по методу ФИФО) или строго контролировать сопоставление первичных документов в торговой базе перед запуском синхронизации. Если из-за некорректного обмена на субсчетах 60 и 62 уже возникли перекосы, для исправления ситуации можно воспользоваться обработкой для поиска ошибок во взаиморасчетах и зачета авансов.

← На главную