Как исключить внутренние обороты в 1с
Все мы знакомы с такой замечательной регламентной операцией как "Закрытие месяца" в 1С:Бухгалтерии 8.3 (редакция 3.0).
Ситуация
И все мы были в ситуации, когда нужно закрыть период, а программа начинает требовать перепровести и закрыть предшествующий период.
Начинаешь закрывать предыдущий период, а она снова требует перепровести ранние периоды.
И так до бесконечности. Перепроводишь старые периоды - ползут цифры, а отчетность уже сдана. И год закрыт. Это настоящий кошмар для бухгалтера. Что делать?
Делаем резервную копию
Прежде всего, перед тем как закрывать период - я настоятельно рекомендую сделать резервную копию базы. Это позволит нам смело перепроводить документы, зная, что в случае чего всегда сможем вернуться к первоначальному состоянию. О том как сделать резервную копию написано здесь.
Вдумчиво читаем ошибки
Следующий момент. Если мы собираемся проделать все закрытия месяца, скажем, за 2013 год - сначала нужно отменить все закрытия месяца за год, а потом последовательно, начиная с января 2013 года выполнять закрытие месяца за закрытием месяца.
Дальше. Вдумчиво вчитывайтесь в ошибки, которые пишет программа. Делайте пропуск операции только в самом крайнем случае. Обычно достаточно правильно настроить параметры и корректно провести закрытие первого месяца в году и дальше всё идет как по нотам. Потратьте время, разберитесь с этими ошибками один раз и забудьте про них навсегда.
Но вот, предположим у нас уже закрыты все года до 2013 (или нам вообще перенесли все документы из старой редакции 2.0 в 1С 8.3) и нам нужно делать закрытие 2013 года, не изменяя прошлые года. Начинаем проводить закрытие января 2013 года, а программа ругается - мол повторите закрытие декабря 2012! Не поддавайтесь. Потому что если начнете перепроводить закрытие 2012 - поползут все цифры, а год уже закрыт.
Обманываем программу
В этом случае правильно заставить 1С:Бухгалтерию 8.3 думать, что 2012 год закрыт верно и перепроводить там ничего не нужно.
О том как это сделать ниже по шагам.
Очищаем регистр "Неактуальные регламентные операции"
- Откройте пункт меню "Функции для технического специалиста. ". О том как это сделать написано здесь.
- Найдите в открывшемся окне пункт "Регистры сведений". Раскройте его на плюсик.
- В списке регистров найдите пункт "Неактуальные регламентные операции". Откройте его.
- Удалите все элементы из этого окна. Выделяйте по очереди и нажимайте Delete или кнопку удаления на панели.
Настраиваем регистр "Исключенные из перепроведения месяцы"
Внимание! В новых версиях Бухгалтерии Предприятия (с версии 3.0.63.20 точно) больше не используется регистр "Исключенные из перепроведения месяцы".
Теперь прямо в закрытии месяца можно кликнуть по ссылки "Перепроведение документов" и выбрать вариант "Перепроведение не требуется".
Если закрытие месяца всё ещё требует повторного проведения документов за прошлый год - снова откройте меню "Функции для технического специалиста. ", найдите и откройте в нём регистр сведений "Исключенные из перепроведения месяцы".
Ваша задача создать на каждый месяц 2012 года (напоминаю, что мы пытаемся делать закрытие 2013 года, а 1С ругается на то, что нужно перепроводить 2012) отдельную запись в этом регистре (при помощи кнопки Создать):
Исключим из перепроведения январь 2012 - запись будет такой:
Нажмём кнопку "Записать и закрыть".
Затем февраль 2012:
И так далее до декабря.
Теперь у вас должно получиться провести закрытие месяца за январь 2013.
Какие ещё есть варианты?
Здесь буду описывать истории от читателей, которыми они делятся при разборах ошибки закрытия месяца у себя.
Читательница из Брянска пишет:
В 1с 8.3 работаем с 2016 г., а сама фирма с 2013 года. Сейчас попробовала удалить приемы на работу сотрудников с 2013, приняла их с 01.12.15 года (остатки по з/п вводила). И ВСЕ ЗАРАБОТАЛО)))) УРА!
Иван Ватумский делится своим случаем:
Пользователи перепровели документы в 2015, после чего потребовалось вновь перезакрыть 2015 год.
Тут выяснилось, что в операции "Закрытие месяца" за нужный период не отображается ни одной операции.
Оказалось, что причина этого в регистре сведений "Даты ввода начальных остатков", которые были установлены как раз на 31.12.2015 и тем самым давали указание программе не совершать регламентные операции закрытия месяца.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нужно в него добавить дополнительное условие:
Исключить из оборотов счета с определенной аналитикой.
Список этих счетов с аналитикой заполняется скажем в РС "ИсключаемаяАналитика"
с реквизитами:
-Счет
-СубКонто1
-СубКонто2
-СубКонто3
где обязательны к заполнению Счет и хотя бы одно из СубКонто
Вопрос:
Как всунуть в вышеприведенный текст запроса условие исключения этих записей из РС?
создаёте временную таблицу ИсключаемыеСчета
а потом в параметрах виртуальной таблицы Обороты добавляете фильтрацию Счета по ВТ ИсключаемыеСчета
romansun пишет:в параметрах виртуальной таблицы Обороты добавляете фильтрацию Счета по ВТ ИсключаемыеСчета
Но ведь нужна фильтрация не просто по счетам а по счетам с определенной аналитикой
(3) хм, мне надо обдумать Ваш совет
(4)
ну так вы напишите такой запрос, который отберет вам в исключаемую таблицу только счета с определенной аналитикой, и вообще с каким-либо угодным условием
а если возможно обойтись условием по субконто, то, да - (3)
romansun пишет:запрос, который отберет вам в исключаемую таблицу только счета с определенной аналитикой,
По условию нужно отбирать все аналитики кроме некоторых исключаемых.
В параметры, я так понимаю, (я пока плохо с этим разбираюсь) это условие не засунешь, ибо параметр Счет не поймет ограничения по СубКонто, а параметр СубКонто не поймет ограничения по Счету.
Похоже мне нужно смотреть в комментарий (3).
Итак, мне нужно:
- получить список исключаемых субконто
- разбить их на три списка по номерам субконто 1, 2, 3
- и добавить в параметр Условие:
нет, что-то слишком коряво вышло
P.S.
Я только что уточнил задание (на обеде все были не у кого было уточнить ранее), что счет в исключаемых аналитиках тот же что и в условии Счет.
Так что tango в (3) быстро просек всю ситуацию даже с неполными входящими и дал лаконичный, но точный ответ :)
Спасибо.
Но все же мне не нравится мое корявое решение с разбиением ограничений на три списка.
Как бы все это совместить в одном.
что в условие по счету, что по субконто можно писать запросы вида
Счет не в (Выбрать Счет из . где . )
Субконто1 не в (Выбрать Субконто из . где . )
т.е. полноценные выборки, которые на выходе дадут счет (список счетов) или субконто (список субконт). Этим можно оперировать при констурировании параметров у виртуальных таблиц.
PS
вот, кстати и пиар типа - возможно станет яснее с параметрами :)
romansun пишет:
что в условие по счету, что по субконто можно писать запросы вида
Счет не в (Выбрать Счет из . где . ) Субконто1 не в (Выбрать Субконто из . где . )
т.е. полноценные выборки, которые на выходе дадут счет (список счетов) или субконто (список субконт).
мне сдается, что в этом случае получится что условия не пересекаются, ведь тут ИЛИ,
и не попадет ли на другой счет субконто?
Тут нужно И (счет И субконто вместе в связке)
Здается мне что тут нужно смотреть 6 параметр УСЛОВИЕ, там где "Организация = &Организация".
Читаю цитату из "Проф. разработки" Габеца и ко.
"параметр Условие - содержит конструкцию языка запросов. Позволяет установить отбор данных виртуальной таблицы по значениям субконто и измерений регистра бухгалтерии".
Хотя, впрочем нет, ведь здесь тоже не написано про счет, ведь счет это не измерение.
Ну счас проверю.
Выборка из регистра бухгалтерии и работа с виртуальными таблицами мало чем отличается от выборки из регистра накопления. Поэтому перед чтением данной статьи рекомендую ознакомиться со статьей про работу с виртуальными таблица регистра накопления. В данной статье подробно будет рассмотрена только та функциональность, которая есть только у регистра бухгалтерии.
Выборка из регистра бухгалтерии
Помимо выборки из основной таблицы регистра бухгалтерии в запросе можно выбрать данные из таблицы субконто.
РегистрБухгалтерии.РегистрБухгалтерии1 КАК РегистрБухгалтерии1
Выборка значений субконто:
РегистрБухгалтерии1Субконто.Регистратор КАК Регистратор , РегистрБухгалтерии1Субконто.МоментВремени КАК МоментВремени , РегистрБухгалтерии1Субконто.НомерСтроки КАК НомерСтроки , РегистрБухгалтерии1Субконто.ВидДвижения КАК ВидДвижения , РегистрБухгалтерии.РегистрБухгалтерии1.Субконто КАК РегистрБухгалтерии1Субконто
Виртуальные таблицы регистра бухгалтерии
У регистра бухгалтерии немного больше виртуальных таблиц, чем у регистра накопления:
При этом у регистра бухгалтерии без поддержки корреспонденции не будет виртуальной таблицы ОборотыДтКт.
ДвиженияССубконто
Виртуальная таблица ДвиженияССубконто содержит в себе поля как основной таблицы регистра бухгалтерии, так и таблицы значений субконто:
Данная таблица получается соединением основной таблицы и таблицы значений субконто. Из всех виртуальных таблиц только данная таблица может содержать неактивные записи (поле Активность = Ложь), но при этом в самой таблице есть поле Активность, поэтому неактивные записи можно будет исключить в запросе.
Таблица ДвиженияССубконто имеет следующие параметры:
- С помощью параметров НачалоПериода и КонецПериода можно ограничить выборку записей по периоду. Тип может быть Дата, МоментВремени, Граница.
- Параметр Условие позволяет наложить отбор на любые поля таблицы.
- Параметр Упорядочивание позволяет задать поле по которому нужно отсортировать таблицу. После имени поля можно указать ВОЗР или УБЫВ для определения порядка сортировки (по возрастанию или по убыванию).
- Параметр Первые позволяет ограничить количество выбираемых записей.
Данный запрос выберет первые 10 записей за период между &НачДата и &КонДата, с отбором по счету дебета = &СчетДт, выборка будет отсортирована по полю Организация.
Все отборы, сортировку и ограничение количества записей можно указать не в параметрах виртуальной таблицы, а в тексте запроса. Преимущество использования параметров в том, что они будут использованы в процессе формирования виртуальной таблицы, что положительно скажется на производительности запроса.
Как правило данную таблицу используют для получения проводок вместе с субконто.
Виртуальная таблица остатки
Отличия от виртуальной таблицы регистра накопления
Виртуальная таблица остатков регистра бухгалтерии очень сильно похожа на виртуальную таблицу остатков регистра накопления, поэтому рассмотрим только основные отличия.
Во-первых помимо измерений регистра бухгалтерии в таблице остатков присутствуют поля Счет и субконто. Количество субконто равно максимальному количеству субконто в плане счетов.
В нашем примере в настройках плана счетов было указано максимум два субконто, поэтому в таблице есть два поля для субконто: Субконто1 и Субконто2. Если на каком-то счете присутствует только одно субконто, то в поле Субконто2 будет NULL.
Во-вторых, для каждого ресурса создается по пять полей:
- Остаток
- ОстатокДт
- ОстатокКт
- РазвернутыйОстатокДт
- РазвернутыйОстатокКт
В поле Остаток будет остаток, как он хранится в таблице итогов. Дебетовый остаток будет больше нуля, кредитовый меньше.
Поля ОстатокДт и ОстатокКт рассчитываются по разному, в зависимости от вида счета:
- Для активного счета ОстатокКт всегда равен нулю, а ОстатокДт = Остаток.
- Для пассивного счета ОстатокДт всегда равен нулю, а ОстатокКт = -Остаток.
- Для активно-пассивного счета, если Остаток > 0, то ОстатокДт = Остаток, а ОстатокКт = 0. Если Остаток < 0, то ОстатокДт = 0, а ОстатокКт = -Остаток.
Даже если у активного счета остаток будет меньше нуля, то он будет отображаться как дебетовый остаток, но с минусом. Аналогично с пассивным счетом: если остаток больше нуля, то он будет по кредиту, но с минусом:
Признак Балансовый у измерений и ресурсов никак не влияет на количество полей.
В-четвертых, есть два новых параметра: УсловиеСчета и Субконто:
УсловиеСчета позволяет задать отбор по счетам учета, можно указать несколько счетов.
В параметре Условие можно задать отбор по измерениям и субконто, данный параметр аналогичен параметру для виртуальной таблицы регистра накопления.
Читайте также: