При переходе на современные системы управления предприятием, такие как 1С:ERP Управление предприятием или 1С:Комплексная автоматизация 2, многие пользователи сталкиваются с неожиданным поведением печатной формы авансового отчёта. Проблема заключается в том, что в графе «Предыдущий аванс» или «Остаток» появляется сумма, хотя подотчётное лицо фактически не получало денежных средств (Расходный кассовый ордер не оформлялся). Бухгалтеры, привыкшие к логике 1С:Бухгалтерия 3.0 или КА 1.1, ожидают увидеть в этом поле пустое значение или перерасход, но система упорно подставляет цифры. Давайте подробно разберем, почему это происходит и как правильно отражать такие операции.
Для начала проанализируем фундаментальное различие в архитектуре систем. В 1С:ERP и КА 2 учет расчетов с подотчётными лицами ведется не только на плане счетов (счет 71.01), но и в специализированном регистре накопления Денежные средства у подотчетных лиц. Именно данные этого регистра являются первичными для формирования печатных форм.
Важно понимать логику разработчиков 1С: Авансовый отчет предназначен строго для ситуации, когда сотруднику сначала выдали аванс, а потом он за него отчитался. Если сотрудник тратит свои «кровные» деньги, а организация возмещает их позже, то с точки зрения системы это не авансовый отчет, а прямая закупка у поставщика через посредника (подотчётника). Рассмотрим, какие варианты решения существуют в данной ситуации.
Методологически верным способом в ERP-системах для случая, когда аванс не выдавался, является оформление закупки без использования документа Авансовый отчет. Рассмотрим этот процесс по шагам:
Приобретение товаров и услуг.Расходный кассовый ордер (или Списание с банковского счета) с видом операции Выдача подотчетному лицу (оплата перерасхода).При такой схеме печатная форма Авансовый отчет в классическом понимании не требуется, так как закупка отражена как прямое поступление. Это исключает путаницу с «предыдущими авансами».
Если ваша учетная политика или привычки бухгалтерии требуют использования именно документа Авансовый отчет, нам необходимо выяснить, откуда система берет данные для графы «Получено». Проанализируем фрагмент программного кода, который отвечает за выборку данных для печатной формы:
&НаСервере
Функция ВыборкаПолучено
Запрос = Новый Запрос;
Если ЗначениеЗаполнено(Объект.Ссылка) И Объект.Проведен И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Статус") = Перечисления.СтатусыАвансовогоОтчета.Утвержден Тогда
Запрос.Текст = "
|ВЫБРАТЬ
| ДенежныеСредства.СуммаНачальныйОстаток КАК Получено,
| ДенежныеСредства.Валюта КАК Валюта
|ИЗ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.ОстаткиИОбороты(,, Регистратор,,
| Организация = &Организация
| И Подразделение = &Подразделение
| И ПодотчетноеЛицо = &ПодотчетноеЛицо
| И (Валюта = &Валюта ИЛИ &Мультивалютный)
| ) КАК ДенежныеСредства
|ГДЕ
| ДенежныеСредства.Регистратор = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Иначе
Запрос.Текст = "
|ВЫБРАТЬ
| ДенежныеСредства.СуммаОстаток КАК Получено,
| ДенежныеСредства.Валюта КАК Валюта
|ИЗ
| РегистрНакопления.ДенежныеСредстваУПодотчетныхЛиц.Остатки(&ДатаДокумента,
| Организация = &Организация
| И Подразделение = &Подразделение
| И ПодотчетноеЛицо = &ПодотчетноеЛицо
| И (Валюта = &Валюта ИЛИ &Мультивалютный)
| ) КАК ДенежныеСредства";
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
Запрос.УстановитьПараметр("ДатаДокумента", Объект.Дата);
Иначе
Запрос.УстановитьПараметр("ДатаДокумента", ТекущаяДатаСеанса);
КонецЕсли;
КонецЕсли;
// Установка остальных параметров...
Возврат Запрос.Выполнить.Выбрать();
КонецФункции
Проанализировав этот код, мы видим, что система обращается к остаткам по регистру ДенежныеСредстваУПодотчетныхЛиц на момент даты документа. Если в графе «Предыдущий аванс» появляется сумма, значит, в этом регистре уже есть остаток по данному сотруднику.
Это самый частый вопрос. Выясним основные причины расхождений между данными бухгалтерского счета и оперативного регистра:
Авансовый отчет имеет статусы (Подготовлен, Утвержден). Пока документ не находится в статусе Утвержден, движения по регистрам могут не соответствовать финальным ожиданиям пользователя.Рассмотрим порядок действий для исправления «невидимых» авансов:
Корректировка регистров, чтобы обнулить записи в регистре Денежные средства у подотчетных лиц.Расходный кассовый ордер на возмещение перерасхода создан тем же днем, что и Авансовый отчет, но по времени стоит раньше него — система воспримет его как выданный аванс. Всегда контролируйте последовательность: сначала отчет (возникновение долга перед сотрудником), затем оплата.Подведем итог: Появление суммы в поле «Предыдущий аванс» — это не ошибка программы, а следствие работы заложенных алгоритмов. Система либо видит реальный остаток в оперативном регистре, либо вы используете документ не по его прямому методологическому назначению. Использование операции Закупка через подотчетное лицо в документе приобретения — самый надежный способ избежать подобных проблем в 1С:ERP и Комплексной автоматизации 2.