1с как остановить проведение документов

Обновлено: 04.07.2024

Все мы знакомы с такой замечательной регламентной операцией как "Закрытие месяца" в 1С:Бухгалтерии 8.3 (редакция 3.0).

Ситуация

И все мы были в ситуации, когда нужно закрыть период, а программа начинает требовать перепровести и закрыть предшествующий период.

Начинаешь закрывать предыдущий период, а она снова требует перепровести ранние периоды.

И так до бесконечности. Перепроводишь старые периоды - ползут цифры, а отчетность уже сдана. И год закрыт. Это настоящий кошмар для бухгалтера. Что делать?

Делаем резервную копию

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

Вдумчиво читаем ошибки

Следующий момент. Если мы собираемся проделать все закрытия месяца, скажем, за 2013 год - сначала нужно отменить все закрытия месяца за год, а потом последовательно, начиная с января 2013 года выполнять закрытие месяца за закрытием месяца.

Дальше. Вдумчиво вчитывайтесь в ошибки, которые пишет программа. Делайте пропуск операции только в самом крайнем случае. Обычно достаточно правильно настроить параметры и корректно провести закрытие первого месяца в году и дальше всё идет как по нотам. Потратьте время, разберитесь с этими ошибками один раз и забудьте про них навсегда.

Но вот, предположим у нас уже закрыты все года до 2013 (или нам вообще перенесли все документы из старой редакции 2.0 в 1С 8.3) и нам нужно делать закрытие 2013 года, не изменяя прошлые года. Начинаем проводить закрытие января 2013 года, а программа ругается - мол повторите закрытие декабря 2012! Не поддавайтесь. Потому что если начнете перепроводить закрытие 2012 - поползут все цифры, а год уже закрыт.

Обманываем программу

В этом случае правильно заставить 1С:Бухгалтерию 8.3 думать, что 2012 год закрыт верно и перепроводить там ничего не нужно.

О том как это сделать ниже по шагам.

Очищаем регистр "Неактуальные регламентные операции"

  1. Откройте пункт меню "Функции для технического специалиста. ". О том как это сделать написано здесь.
  2. Найдите в открывшемся окне пункт "Регистры сведений". Раскройте его на плюсик.
  3. В списке регистров найдите пункт "Неактуальные регламентные операции". Откройте его.
  4. Удалите все элементы из этого окна. Выделяйте по очереди и нажимайте 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С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

При переносе данных между базами часто возникает ситуация, когда движения документов переносить не требуется, а перенесенные документы следует проводить в базе-приёмнике. Например, в базе-источнике ведется управленческий учет, а в базе-приемнике регламентированный. Если при переносе не учитывать свойство «Проведен» документа, то можно получить в приемнике проведенные документы, у которых данные в движениях и в объекте не соответствуют друг другу.

В правилах конвертации объектов (ПКО) в обработчике «Перед загрузкой» существуют параметры «РежимЗаписи» и «РежимПроведения», указание которых обеспечивает необходимый режим записи объекта, но в этом случае, запись происходит во время загрузки данных и если, по каким-то причинам, документ не запишется, загрузка данных будет прервана. Правильней записывать новые документы в конце загрузки, когда все перенесенные объекты уже будут в базе - приемнике.

Несколько основных моментов:

Для решения стоящей задачи наиболее удобно использовать обработчики событий конвертации в целом. Но нам необходимо определить – объект - это документ, и если документ – то проводится ли он. Для идентификации документа используем параметр обработчика ИмяТипаОбъекта.

I. Первый, более простой, случай: требуется оставлять в базе-приемнике документы непроведенными.

Подразумевается, что пользователи в базе-приемнике проверят документы и потом их проведут. Если не переносить движения и просто указать в свойстве «Проведен» - «Значение = Ложь», то можем получить при повторном переносе документы внешне не проведенные, но с движениями. К этому получим справедливое возмущение пользователей, которые не смогут понять результатов отчетов.

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

1. В обработчике « Перед загрузкой данных » конвертации создаем параметр с типом значений «Таблица значений». В колонку "Действие" строкой будем записывать – что делать с документом: просто отменять проведение или еще проставлять пометку на удаление.

ТаблицаДокументов = Новый ТаблицаЗначений ;
ТаблицаДокументов . Колонки . Добавить ( "Ссылка" );
ТаблицаДокументов . Колонки . Добавить ( "Действие" );
Параметры . Вставить ( "ТаблицаДокументов" , ТаблицаДокументов );

2. В обработчике «После загрузки объекта» конвертации, определяем найден ли объект, является ли объект документом, проводится ли он, и если в приемнике он проведен, то только тогда помещаем ссылку на него в наш параметр ТаблицаДокументов.

Если ОбъектНайден
И ИмяТипаОбъекта = "Документ"
И Объект . Метаданные (). Проведение = Метаданные . СвойстваОбъектов . Проведение . Разрешить
И Объект . Ссылка . Проведен Тогда
НоваяСтрока = Параметры . ТаблицаДокументов . Добавить ();
НоваяСтрока . Ссылка = Объект . Ссылка ;
Если ПараметрыОбъекта . Получить ( "ПометкаУдаления" ) Тогда
НоваяСтрока . Действие = "Удаление" ;
Иначе
НоваяСтрока . Действие = "Отмена" ;
КонецЕсли;
ИначеЕсли ПараметрыОбъекта <> Неопределено И Лев ( Строка ( ТипЗнч ( Объект )), 8 ) = "Документ" Тогда
Объект . ПометкаУдаления = ПараметрыОбъекта . Получить ( "ПометкаУдаления" ); //Пометка удаления у новых объектов и непроведенных старых
КонецЕсли;

3. В обработчике «После загрузки данных» конвертации отменяем проведение у записанных документов, проставляем при необходимости пометку на удаление и удаляем наш параметр. При желании отследить процесс удаления код обработчика может выглядеть так:

II. Требуется обеспечить проведение документов в базе-приемнике при переносе.

В этом случае необходимо помимо пометки удаления передавать значение свойства «Проведен» в параметр «Проведен» и данный параметр анализировать в обработчике «После загрузки объекта» (Рис.2).

1. « Перед загрузкой данных » Повторяем создание параметра конвертации, как в первом примере

ТаблицаДокументов = Новый ТаблицаЗначений ;
ТаблицаДокументов . Колонки . Добавить ( "Ссылка" );
ТаблицаДокументов . Колонки . Добавить ( "Действие" );
Параметры . Вставить ( "ТаблицаДокументов" , ТаблицаДокументов );

2. «После загрузки объекта » После загрузки мы должны уже работать с объектами, которые еще не записаны в базе. Документы можно выделить по типу значения, а новый объект, перед внесением в таблицу параметра, необходимо предварительно записать. Не забываем установить параметр «ОбъектМодифицирован» в «Ложь».

Если ИмяТипаОбъекта = "Документ"
И Объект . Метаданные (). Проведение = Метаданные . СвойстваОбъектов . Проведение . Разрешить Тогда

Если Не ОбъектНайден Тогда
Объект . Записать ();
ОбъектМодифицирован = Ложь;
КонецЕсли;

НоваяСтрока = Параметры . ТаблицаДокументов . Добавить ();
НоваяСтрока . Ссылка = Объект . Ссылка ;

Если ПараметрыОбъекта . Получить ( "Проведен" ) Тогда
НоваяСтрока . Действие = "Проведение" ;
ИначеЕсли ПараметрыОбъекта . Получить ( "ПометкаУдаления" ) Тогда
НоваяСтрока . Действие = "Удаление" ;
Иначе
НоваяСтрока . Действие = "Отмена" ;
КонецЕсли;
КонецЕсли;

3. «После загрузки данных » После загрузки мы должны пропустить запись документа, если он не проведен в базе-источнике и в базе приемника. Также необходимо проследить за пометкой удаления.

Для каждого СтрокаТч Из Параметры . ТаблицаДокументов Цикл


Если СтрокаТч . Действие = "Отмена" И Не СтрокаТч . Ссылка . Проведен Тогда
Если СтрокаТч . Ссылка . ПометкаУдаления Тогда //Для снятия пометки удаления
Попытка
ДокОбъект = СтрокаТч . Ссылка . ПолучитьОбъект ();
ДокОбъект . ПометкаУдаления = Ложь;
ДокОбъект . Записать ();
Исключение
КонецПопытки;
КонецЕсли;

Если СтрокаТч . Действие = "Проведение" Тогда
РежимЗаписи = РежимЗаписиДокумента . Проведение ;
Иначе
РежимЗаписи = РежимЗаписиДокумента . ОтменаПроведения ;
КонецЕсли;

Если СтрокаТч . Действие = "Удаление" Тогда
ДокОбъект . ПометкаУдаления = Истина;
ДокОбъект . Записать ();
ИначеЕсли СтрокаТч . Ссылка . ПометкаУдаления Тогда
ДокОбъект . ПометкаУдаления = Ложь;
ДокОбъект . Записать ();
КонецЕсли;
Исключение

Бывают случаи, когда вы, после открытия документа старого периода, по которому вы уже сдали отчеты, случайно вместо простого закрытия окна, нажали «Провести и закрыть». Документ, естественно, проводится, и граница последовательно проведенных документов устанавливается на данный документ. А значит, что при закрытии месяца программа предложит вам перепровести все документы, начиная с этого, случайно проведенного.

Конечно, можно это сделать. НО….

Если компьютер слабый, а база не маленькая, это может занять очень продолжительное время.

Если в старом периоде уже была нарушена последовательность перепроведения, и программу заставили об этом забыть, итоги после перепроведения могут отличаться от итогов до этого действия.

Так что же делать?

Конечно, надо было заранее закрыть период от изменения. Напоминаю, что сделать это можно в «Меню / Администрирование / Поддержка и обслуживание / Регламентные операции». Здесь поставить галку перед «Даты запрета изменения», и в появившемся правее пункте «Настроить» установить необходимые значения.


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

И так средство. Открываете «Закрытие месяца» и выбираете последний месяц, который вы не хотите перепроводить. Кликаете по «Перепроведение документов за месяц (начиная с …)», и в выпадающем меню выбираете «Пропустить операцию». Все.


После этих действий программа считает все документы этого месяца и раньше правильно последовательно проведенными.

Можете перепроводить и закрывать следующий месяц.

И напоследок. Еще раз повторю. Прежде чем делать массовое перепроведение документов, сделайте архивную копию базы данных. Ну, мало ли что. Так спокойнее.

В этом уроке мы изучим всё, что нужно знать бухгалтеру о проведении документов в 1с, а именно:

Все эти вопросы мы рассмотрим применительно к "тройке" (1С:Бухгалтерия 8.3, редакция 3.0).

Что такое проведение документа и зачем оно нужно?

Проводя документ (нажимая кнопку "Провести") мы заставляем программу отразить хозяйственную операцию, которую олицетворяет документ, на соответствующих счетах бухгалтерского учёта.

Рассмотрим простой пример.

Пусть мы создали новый документ "Поступление наличных", указав в нём вид операции "Получение наличных в банке" и сумму 50 000 рублей:

Далее мы нажали кнопку "Записать", тем самым сохранив документ в базе, чтобы информация, которую мы ввели не потерялась. Более того теперь мы можем распечатать этот документ.

Но считается ли этот документ проведенным? Конечно, нет. Чтобы убедиться в этом нажмём кнопку "ДтКт", которая покажет нам проводки документа:

А если нет проводок, то и в бухгалтерском учёте (например, в оборотно-сальдовой ведомости) мы эти поступившие 50 000 рублей никогда не увидим.

И в журнале этот документ будет без зелёной галочки:

Теперь проведём документ, нажав кнопку "Провести":

И снова проверим появились ли проводки (кнопка "ДтКт"):

Проводки появились и документ с этого момента считается проведённым.

Итак, проведенный - значит с проводками по бухгалтерским счетам и/или движениями по другим регистрам учёта (кроме бухгалтерских регистров в 1с ещё бывают регистры сведений и регистры накоплений, на которых учитывается информация напрямую не попадающая в оборотно-сальдовую ведомость).

Что происходит при нажатии кнопки "Записать" в проведенном документе?

Многие знакомые мне бухгалтеры до конца не понимают как работает кнопка "Записать", когда мы нажимаем её в уже проведённом документе. Перепроводится при этом документ или просто сохраняется с новыми данными, но проводки остаются старыми?

Чтобы было понятнее давайте рассмотрим 2 случая.

Мы работаем в не проведенном документе

При нажатии кнопки "Записать": документ сохраняется, но не проводится.

При нажатии кнопки "Провести": документ сохраняется, а затем проводится (формируются проводки).

Мы работаем в уже проведенном документе

При нажатии кнопки "Записать": документ сохраняется, а затем проводится (старые проводки удаляются и формируются новые).

При нажатии кнопки "Провести": документ сохраняется, а затем проводится (старые проводки удаляются и формируются новые).

Вывод

Если документ уже проведён, то никакой разницы между кнопками "Записать" и "Провести" нет. Они делают одно и то же - перепроводят документ.

Можно ли изменить проведенный документ без его перепроведения?

Во-первых, зачем это может понадобиться? Ну, например, нужно изменить какой-нибудь несущественный реквизит в уже закрытом периоде.

Если вы просто измените его и нажмёте кнопку "Записать", то документ снова проведется (ведь он уже был проведен на момент нашего вмешательства), а это может повлечь изменение проводок в уже закрытом периоде и много других неприятностей.

Чаще всего так и происходит. И когда бухгалтер понимает, что случайно "провёл" документ в прошлом периоде и теперь у него проблемы с обороткой и закрытием месяца, то он просто приходит в ужас

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

Ответ для пользователей: нет, нельзя. Большинство (если не все) типовых документов в "тройке" заточены на то, что формируют проводки заново при изменении и записи документа даже программным способом!

Ответ для программистов: используйте вот такой код при программном сохранении измененного документа:

Как перепровести все документы по организации за период?

Когда речь идёт о текущем (ещё не закрытом) периоде я рекомендую поступать именно так - проводить вообще все документы разом за период по организации.

Зачастую документы различных видов в 1с связаны между собой в части формирования проводок и движений по регистрам.

Причём самому бывает довольно сложно учесть эту зависимость, поэтому только полное перепроведение всех документов за период гарантирует, что программа учтёт все нюансы учёта и сформирует верные проводки.

Заходим в раздел "Операции" пункт "Групповое перепроведение документов":

В открывшейся форме указываем период, организацию и решаем останавливать ли процесс проведения при первой же ошибке:

Наконец, нажимаем кнопку "Выполнить" и дожидаемся окончания процесса.

Как перепровести не все документы, а только определенного вида?

Если же у нас есть веские причины проводить не все документы, а только определенного вида; или нам требуется провести только не проведенные документы - тогда нам на помощь придёт более мощный и гибкий инструмент.

Открываем меню "Функции для технического специалиста. " (у вас его нет?):


В открывшемся диалоге раскрываем пункт "Стандартные" и в нём выбираем "Проведение документов":

Нажимаем кнопку "Открыть". Открылась встроенная в 1с обработка для проведения документов:

Здесь можно выбрать:

  • период проведения документов
  • конкретные виды документов (например, реализация. причём искать в списке можно прямо вводом с клавиатуры)
  • проводить только проведенные или только не проведенные или и те и другие
  • прекращать ли проведение при первой же ошибке

Выбираем нужное и нажимаем кнопку "Провести".

Есть только один нюанс у этой обработки. Она делает проведение выбранных документов сразу по всем организациям в базе и это нужно учитывать, чтобы случайно не перепровести то, что перепроводить не надо.

В общем прекрасная обработка, но если вам нужно проводить ещё и отдельно по организациям, то возможно вы захотите познакомиться с ещё более изощрённым способом

Самый изощрённый способ перепроведения на случай, если в базе несколько организаций

Внимание! Этот вариант предназначен для достаточно опытных пользователей. Если вы пользуетесь этой возможностью в первый раз - я настоятельно рекомендую создать резервную копию базы перед этим.

Покажу на примере.

Пусть у нас в базе много организаций и мы хотим перепровести уже проведенные документы реализации за 1 квартал 2013 года только по организации ООО "Юпитер".

Ни одним из вышеперечисленных способов мы этого сделать не сможем.

Поэтому открываем меню "Функции для технического специалиста. " (у вас его нет?):


В открывшемся окне раскрываем пункт "Обработки" и находим там "Групповое изменение реквизитов":

В пункте "Выбор элементов для изменения" указываем "Реализация (акты, накладные":

Далее нажимаем на ссылку "Все элементы" справа от выбранного поля, чтобы уточнить какие именно документы нужно будет провести:

Настраиваем условия отбора так, чтобы в списке остались только нужные документы:

В данном случае я указал, что нам нужны только уже проведенные документы по организации Юпитер за 1 квартал 2013 года.

Настроив условия отбора нажимаем "ОК".

Теперь нажимаем кнопку "Дополнительные параметры" внизу формы:

Настраиваем параметры вот так:

Далее в списке находим реквизит "Проведен" и устанавливаем его в значение "Да":

Ещё раз убедившись, что среди обрабатываемых элементов присутствуют только нужные нам.

нажимаем кнопку "Изменить реквизиты":

Мы молодцы, на этом всё

Кстати, подписывайтесь на новые уроки.

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Читайте также: