При первом запуске обработка должна выглядеть примерно так:
Сразу рекомендую сохранить настройки с установкой галочек:
Это очень пригодится, когда вы будете регулярно работать со сложными запросами. В моем примере показаны сохраненные несколько вариантов настроек, а в вашем случае, понятное дело, при первом запуске будет только "Основная".
Как пользоваться этой обработкой я покажу на примерах решения тех задач, с которыми мне пришлось столкнуться.
Задача №1. Полное списание.
Дано: При расчете себестоимости не полностью закрылись следующие регистры учета:
Счета регистра бухгалтерии "Хозрасчетный"
20.01.1, 25.01
Счета регистра бухгалтерии "Налоговый"
20.01.1, 23.01, 25.01
и соответствующие регистры накопления:
- Затраты (бухгалтерский учет)
- Затраты (налоговый учет)
- Незавершенное производство (бухгалтерский учет)
- Незавершенное производство (налоговый учет)
Требуется документом "Корректировка записей регистров" списать:
1. Все сальдо регистра бухгалтерии "Хозрасчетный" с кредита указанных счетов в дебет счета 90.02.1, Номенклатурная группа = Собственная продукция
2. Все сальдо регистра бухгалтерии "Налоговый" с кредита указанных счетов в дебет счета 90.02, Номенклатурная группа = Собственная продукция
3. Все остатки по регистрам накопления.
Решение.
1. Подготовить документ "Корректировка записей регистров". Для этого создаем новый документ и выбираем его для заполнения соответствующего реквизита формы обработки. Можно выбрать и существующий, но обработка почистит его перед заполнением. Если это повторное заполнение, то нужно нажать кнопку "Очистить движения документа" ранее выболнения обработки.
2. Установить дату расчета итогов. При выборе документа, если дата на форме отличается от даты документа, обработка предложит дату на форме поставить такую же как в документе. Этот реквизит имеет смысл только для полного списания остатка, т.к. при заполнении запросом, даты устанавливаются в параметрах запроса.
3. Устанавливаем нужные флаги на вкладке "Регистры накопления"
В моем примере установлен отбор по колонке с флагами. Как не трудно догадаться, в наименовании вкладки панели "Регистры накопления (4)*" число 4 означает количество отмеченных регистров. Символ "*" является признаком, что на этой вкладке есть полное списание, т.е. не заполнение запросом, а именно полное списание.
4. Аналогичным образом устанавливаем флаги для вкладок бухгалтерских и налоговых счетов.
Если не настроить кор. счет, то коррекспонденция будет со счетом "000". Смысл флага "Переворачивать проводку в следующем. Если флаг не установлен, то проводка дается красным по той стороне, по которой имеется сальдо. Т.е., если по сч. 20.01.1 имеется сальдо дебетовое, то проводка будет дт. 20.01.1 кт. 90.02.1 красным. Если установить флаг "Переворачивать проводку", то проводка будет дт. 90.02.1 кт. 20.01.1 черным.
Аналогично настраиваем вкладку налоговых счетов.
Жмем "Выполнить", и задача решена.
Задача №2. Синхронизация остатков партий товаров на складах.
Часто бывает так, что остатки по регистрам партий налогового учета отличаются от остатков по регистрам партий бухгалтерского учета. Рассмотрим пример синхронизации с помощью нашей обработки.
И так, требуется привести состояние регистра накопления ПартииТоваровНаСкладахНалоговыйУчет к состоянию регистра ПартииТоваровНаСкладахБухгалтерскийУчет с отбором по счету учета 41.02
Движения будут по регистру ПартииТоваровНаСкладахНалоговыйУчет, поэтому его и отмечаем флагом в списке регистров накопления
Далее, следим за тем, чтобы курсор стоял в строке нужного нам регистра и жмем кнопку "Настройка" панели инструментов над табличной частью.
Жмем кнопку "Запрос". Откроется диалог редактирования запроса. Кстати сказать, он взят из стандартной консоли отчетов, поэтому многим будет знаком и удобен.
Не буду особо распространяться на предмет построения нужного запроса, подразумевая что те кто будет пользоваться этой обработкой в подобных комментариях не нуждаются, а еще и меня научат. Просто приведу здесь текст моего запроса.
ВЫБРАТЬ
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Организация КАК Организация,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.СчетУчета КАК СчетУчета,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Склад КАК Склад,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Номенклатура КАК Номенклатура,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.ДокументОприходования КАК ДокументОприходования,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Заказ КАК Заказ,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Качество КАК Качество,
СУММА(-ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.КоличествоКонечныйОстаток) КАК Количество,
СУММА(-ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК Стоимость,
СУММА(-ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.ПостояннаяРазницаКонечныйОстаток) КАК ПостояннаяРазница,
СУММА(-ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.ВременнаяРазницаКонечныйОстаток) КАК ВременнаяРазница
ПОМЕСТИТЬ Сводная
ИЗ
РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет.ОстаткиИОбороты(&ДатаПерехода, &ДатаПерехода, , , СчетУчета = &СчетНУ) КАК ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.ХарактеристикаНоменклатуры,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Склад,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.ДокументОприходования,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Качество,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.СерияНоменклатуры,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Организация,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.Заказ,
ПартииТоваровНаСкладахНалоговыйУчетОстаткиИОбороты.СчетУчета
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Организация,
&СчетНУ,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ДокументОприходования,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СерияНоменклатуры,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Качество,
СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток),
СУММА(ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьКонечныйОстаток),
0,
0
ИЗ
РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(&ДатаПерехода, &ДатаПерехода, , , СчетУчета = &СчетБУ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
СГРУППИРОВАТЬ ПО
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ДокументОприходования,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Качество,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СерияНоменклатуры,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Организация,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Сводная.Организация,
Сводная.СчетУчета,
Сводная.Склад,
Сводная.Номенклатура,
Сводная.ДокументОприходования,
Сводная.ХарактеристикаНоменклатуры,
Сводная.СерияНоменклатуры,
Сводная.Заказ,
Сводная.Качество,
СУММА(Сводная.Количество) КАК Количество,
СУММА(Сводная.Стоимость) КАК Стоимость,
СУММА(Сводная.ПостояннаяРазница) КАК ПостояннаяРазница,
СУММА(Сводная.ВременнаяРазница) КАК ВременнаяРазница
ПОМЕСТИТЬ Объединенная
ИЗ
Сводная КАК Сводная
СГРУППИРОВАТЬ ПО
Сводная.ХарактеристикаНоменклатуры,
Сводная.СерияНоменклатуры,
Сводная.СчетУчета,
Сводная.Организация,
Сводная.Склад,
Сводная.Номенклатура,
Сводная.ДокументОприходования,
Сводная.Заказ,
Сводная.Качество
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Объединенная.Организация КАК Организация,
Объединенная.СчетУчета КАК СчетУчета,
Объединенная.Склад КАК Склад,
Объединенная.Номенклатура КАК Номенклатура,
Объединенная.ДокументОприходования КАК ДокументОприходования,
Объединенная.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
Объединенная.СерияНоменклатуры КАК СерияНоменклатуры,
Объединенная.Заказ КАК Заказ,
Объединенная.Качество КАК Качество,
Объединенная.Количество КАК Количество,
Объединенная.Стоимость КАК Стоимость,
Объединенная.ПостояннаяРазница КАК ПостояннаяРазница,
Объединенная.ВременнаяРазница КАК ВременнаяРазница
ИЗ
Объединенная КАК Объединенная
ГДЕ
(Объединенная.Количество <> 0
ИЛИ Объединенная.Стоимость <> 0
ИЛИ Объединенная.ПостояннаяРазница <> 0
ИЛИ Объединенная.ВременнаяРазница <> 0)
УПОРЯДОЧИТЬ ПО
Организация,
СчетУчета,
Склад,
Номенклатура,
СерияНоменклатуры,
Качество,
ДокументОприходования,
Заказ,
ХарактеристикаНоменклатуры,
ВременнаяРазница,
Количество,
ПостояннаяРазница,
Стоимость
АВТОУПОРЯДОЧИВАНИЕ
Переходим на вкладку "Параметры" и жмем "Заполнить". Появляются пустые параметры, которые мы устанавливаем согласно условиям задачи.
Жмем "Ок", запрос выполняется и заполняет табличную часть в окошке "Настройка" результатом запроса.
Тут есть важное замечание. Структура результата запроса должна строго соответствовать структуре регистра, с которым работаем. А именно, если ресурс называется "Количество", то и в результате запроса должно быть "Количество", как в примере, а не "КоличествоКонечныйОстаток", например.
Жмем "Перенести". Окно настройки закрывается, а все результаты переносятся строку выбранного нами регистра.
Видим, что отмечен только один регистр, нет пометок "*", а значит нет полного списания. В колонке "Текст запроса" сохранен наш запрос (параметры и результаты запроса тоже сохранены). Результат запроса можно посмотреть на вкладке "Данные".
Жмем "Выполнить" и задача решена.