Работы проводились на платформе 1С:Предприятие 8.3 (8.3.13.1644), в программе "Управление торговлей", редакция 10.3 (10.3.49.3).
Цель свертки — свернуть остатки по товарам и по взаиморасчетам с контрагентами. Характеристики и серии не учитываются. По вашему желанию будут добавлены.
По товарным остаткам нужно, чтобы остатки в товарном и в партионном учете совпадали.
1. Типовая свертка (с диска ИТС или ИТС-онлайн — обработка "Свертка информационной базы" https://its.1c.ru/db/metod8dev#content:3685:hdoc) сворачивает регистры "ТоварыОрганизаций", "ТоварыНаСкладах", "ПартииТоваровНаСкладах". Если в базе начались расхождения по этим регистрам, то в результате проведения типовой свертки вы получите те же расхождения и не сможете свести остатки. Поэтому наилучшим методом является не использовать типовую свертку по товарам, а написать обработку, которая переносит остатки по регистру "ТоварыНаСкладах" в документ "ОприходованиеТоваров". Прикладываю обработку к статье. Себестоимость товаров (которая указывается в поле Цена табл. части документа Оприходование) при этом можно брать по разному — приведу два возможных способа:
1) по средней из регистра "ПартииТоваровНаСкладах" (такой способ реализован в прилагаемой обработке)
2) если заданы "Приходные" цены, то из регистра сведений "ЦеныНоменклатуры"
3) по тем товарам, по которым себестоимость не определяется, проставляется 1 руб. (или 1 копейка), в дальнейшем правится руками. Для целей выделения НДС рекомендую ставить 1 руб. Если НДС нет, то 1 копейку.
2. Такой же вариант проведения свертки можно использовать для сворачивания взаиморасчетов по контрагентам. Так, к примеру, типовая свертка сворачивает регистры "ВзаиморасчетыСКонтрагентами", "ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов", "РасчетыСКонтрагентами". При этом по документам расчета не проверяется итоговая задолженность контрагента в целом по договору: по договору в целом задолженности может не быть, а остатки по документам расчета на определенную дату имеются (см.рис.1).
При использовании типовой свертки связь между регистрами "РасчетыСКонтрагентами" и "ВзаиморасчетыСКонтрагентами" теряется. А если перенести остатки по взаиморасчетам с контрагентами в специализированный документ "ВводНачальныхОстатковПоВзаиморасчетам", то связь между регистрами будет выстроена автоматически — через документ-регистратор и закладываемую логику алгоритма проведения этого документа. Поэтому наилучшим способом будет не использовать типовую свертку, а перенести остатки через обработку создания документов ""ВводНачальныхОстатковПоВзаиморасчетам" (прикладываю к статье).
3. Сделал архивную копию базы, развернул две копии рабочей базы — первая для экспериментов, вторая база — неприкосновенная для сравнения с первоначальной рабочей базой. Вторая база пригодилась с неожиданной стороны. Я начал в рабочей базе восстанавливать последовательность проведения документов (по партионному учету). В итоге остатки по товарам и взаиморасчетам стали "скакать" — остатки по товарам ушли в минус, появились долги по контрагентам.
В результате выяснилось, что в базе имелись документы, в реквизитах которых стояли одни контрагенты или товары, а в проводках были другие. Такие ошибки могут возникать по разным причинам, назову только две известные мне:
1) при обмене документами с другими базами, не производится дальнейшая процедура перепроведения документов;
2) при групповом изменении реквизитов документа, не производится дальнейшая процедура перепроведения документов.
В итоге для исправления ошибок учета менеджеры создавали "Списания товаров", "Корректировку долга", "Оприходования товаров" вместо того, чтобы выявить причину происхождения ошибок и ликвидировать ее.
В общем, вывод такой — не всегда полезно восстанавливать последовательность перед сверткой. А так как в рабочей базе за два года были перепроведены документы, текущие остатки никого не устраивали. Пришлось или восстанавливать архив и переносить документы за пару дней работы менеджеров, или найти альтернативный вариант. Так как сворачивать рабочую базу уже было нельзя, а восстанавливать ее было долго, то было сделано так — на второй базе была проведена свертка, далее необходимые документы "ВводНачальныхОстатковПоВзаиморасчетам", "ОприходованиеТоваров", "КорректировкаЗаписейРегистров" были перенесены в рабочую базу с помощью типовой обработки "ВыгрузкаЗагрузкаДанныхXML82". В дальнейшем документы в рабочей базе были удалены до даты свертки.
4. При анализе регистров сведений — что сворачивать, а что оставить как есть, обнаружил такой момент. Для своих нетиповых регистров сведений, которые я добавлял в течение года, рекомендуется добавлять в качестве документа-регистратора документ "КорректировкаЗаписейРегистров". Это пригодится не только при корректировке записей этих регистров, но и при сворачивании информации в конце года. Это было небольшое отступление. Что касается свертки :
Цены по товарам, как и все остальные регистры сведений, было решено не сворачивать!
В типовой свертке, чтобы случайно не свернуть регистры сведений и другие регистры накопления, я отключил их обработку через групповое изменение (см.рис.2, 3)
Когда случайно перепутал кнопки — нажал "Свернуть все" вместо "Сформировать" — тогда потерял час времени, поскольку удалились записи по многим регистрам, потом пришлось восстанавливать копию из архива. Чтобы не путаться в кнопках, отключил их доступность совсем (см.рис.4). Для проведения типовой свертки по определенным регистрам накопления:
"ДенежныеСредства",
"ДенежныеСредстваКСписанию",
"ТоварыВРезервеНаСкладах",
"РазмещениеЗаказовПокупателей",
"ЗаказыПокупателей" —
использовал только кнопку "Сформировать" (см. рис.4).
5. Типовая свертка не сворачивает регистры оборотов: алгоритм не написан, используется вызов команды "Возврат" для оборотных регистров. Получается, что после проведения свертки из базы исчезнут вместе с документами-регистраторами вся накопленная информация по оборотным регистрам!
К примеру, если вы используете накопительные скидки, то вам важно сохранить после свертки информацию по регистру "Продажи по дисконтным картам". В результате я написал обработку для сворачивания оборотов по регистру "Продажи по дисконтным картам", выкладываю здесь. Для других оборотных регистров можно использовать тот же принцип, и доработать алгоритм обработки по аналогии.
6. Так как УТ обменивалась с БП 3.0, то перед проведением свертки, я провел обмен и изменил дату переноса документов на Дату свертки.
Так как процедура сворачивания остатков растянулась на несколько вечеров, то пришлось установить "Дату запрета редактирования" на Дату свертки, и включить "Применение даты запрета редактирования для полных прав" (через константу). Помним об этом!
7. После формирования документов остатков, документы за весь прошлый период распровел и пометил на удаление с помощью "Групповой обработки документов и справочников". И впоследствии удалил с помощью обработки "Удаление помеченных объектов без монопольного режима" (ищите на ИС). Хотя нет, удалил непосредственно с помощью обработки "Удалить документы без проверки" (выкладываю здесь).
Последнюю обработку не рекомендую использовать вслепую — требуется адаптация под вашу свертку. Поскольку с помощью нее удаляются все документы помеченные на удаление без проверки наличия ссылок на них, кроме документов, которые входят в записи регистров из документов "Корректировка записей регистров", используемых для отражения наших остатков в свертке базы. Зная какие регистры свернулись и содержат остатки на дату свертки, мы можем по ним исключить из удаления документы, входящие в состав остатков по данным регистрам. В общем, смотрите код обработки, он открыт, адаптируйте под себя!
8. Не использовал в запросах тип "Граница" вместо "Даты" (ДатыСвертки) — хотя по уму надо, и не пришлось анализировать и сворачивать регистры по НДС — и если кому придется, то воспользуйтесь подходом из пункта 2 и документом "ВводНачальныхОстатковНДС" и "ВводНачальныхОстатковНДСпоПартиям" соответственно.
Всем бобра, добра-бобра! 🙂
См. также:
Сравнение запросов в одном окне NEW!
Как эффективно использовать Инфостарт
Список реализаций + структура подчиненности + реестр документов SALE’1sm
Список заказов поставщикам + структура подчиненности SALE’1sm
Список заказов покупателей + структура подчиненности SALE’1sm
Договоры для 1с-ника ТОП-скачиваний
Сетка расписания (Планировщик) нестанДАрт
Два механизма, которые ускорили работу бухгалтеров в 1С нестанДАрт
Расчет банковских (рабочих) дней нестанДАрт
Шаблоны кода в режиме 1С:Предприятие SALE’1sm
Доработка конфигурации Конвертация Данных
Планирование платежей. Прогнозирование прибылей и убытков
Ввод показателей план-факта БП 3.0 Know-how
Инвентаризация личного опыта Для новичков 1С
Большие запросы: взгляд на проблему нестанДАрт
Технология создания коммерческих разработок Know-how
Андроид-решение для создания заказов в 1С Know-how + нестанДАрт
Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200
Гарантия возврата денег
ООО «Инфостарт» гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.
Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.
Для возврата оплаты просто свяжитесь с нами.