1с не меняется время документа
Собсно, вопрос - как можно изменить время документа из самого же документа? Есть вариант запуска какой-либо обработки, но не знаю как корректно её вызвать, чтобы не сработала блокировка документа..
Ну так а в чем проблема? Что не работает? Платформа? Приведите код обработки!
Проблема в чем - в процедуре закрытия вызываю обработку, которая должна найти документ по переданному в неё контексту, изменить время и перепровести, но документ в это время еще заблокирован. Вот и спрашиваю - как можно красиво обойти блокировку?
"Самое "красивое" написать в ВводНового():<br><br>АвтоВремяКонецДня();"
Этот вариан не пойдет - именно самому надо менять время документа. <br>
Включить обработку ожидания на 1 секунду и оз нее вызвать обработку для изменения времени документа.
Подскажи, пожалуйста, поподробнее.
"Вот у меня в документе кнопка "Изменить время документа" и процедура к ней:<br>Процедура ИзменитьВремя()<br> Конт=ТекущийДокумент();<br> ОткрытьФорму("Обработка.ИзменитьВремяДокумента",Конт);<br> Форма.Закрыть();<br>КонецПроцедуры<br><br>В обработке ИзменитьВремяДокумента на форме 4 поля ввода:<br>ВыбДокумент - типа Документ<br>ЧЧ - число, не отрицательное для часов<br>ММ - число, не отрицательное для минут<br>СС - число, не отрицательное для секунд<br>У ЧЧ формула Контроль(0), у ММ формула Контроль(1), у СС формула Контроль(1).<br>У кнопки Выполнить формула Выполнить()<br><br>Далее привожу текст модуля:<br>Процедура Выполнить()<br> Если ВыбДокумент.Выбран()=0 Тогда<br> Предупреждение("Не выбран документ!");<br> Возврат;<br> КонецЕсли;<br> Док=СоздатьОбъект("Документ."+ВыбДокумент.Вид());<br> Док.НайтиДокумент(ВыбДокумент);<br> БылПоведен=0;<br> Если Док.Проведен()=1 Тогда<br> Док.СделатьНеПроведенным();<br> БылПоведен=1;<br> КонецЕсли;<br> Док.УстановитьВремя(ЧЧ,ММ,СС);<br> Док.Записать();<br> Если БылПоведен=1 Тогда<br> Док.Провести();<br> КонецЕсли;<br>КонецПроцедуры<br><br>Процедура Контроль(Поле)<br>//Часы max - 23, min - 00<br>//Минуты max - 59, min - 00<br>//Cекунды max - 59, min - 00<br> Если Поле=0 Тогда //Часы<br> Если ЧЧ>=24 Тогда<br> ЧЧ=23;<br> КонецЕсли;<br> КонецЕсли;<br> Если Поле=1 Тогда //Минуты<br> Если ММ>=60 Тогда<br> ММ=59;<br> КонецЕсли;<br> КонецЕсли;<br> Если Поле=1 Тогда //Секунды<br> Если СС>=60 Тогда<br> СС=59;<br> КонецЕсли;<br> КонецЕсли;<br>КонецПроцедуры<br><br>Процедура ПриОткрытии()<br> Если ТипЗначения(Форма.Параметр)=12 Тогда //Тип значения 12 - Документ<br> ВыбДокумент=Форма.Параметр;<br> КонецЕсли;<br>КонецПроцедуры<br><br><br>Все работает, только, что проверил."
В предыдущей статье я рассказал вам про типичные ошибки пользователей 1С Бухгалтерии. По крайней мере, про некоторые из них. Данная статья посвящена одной из таких ошибок. Она настолько распространена, что в общем списке её приводить не стоило. Что же это за ошибка?
Заключается она в том, что ну очень часто при создании документов пользователи 1С Бухгалтерии указывают неверную дату документа. Или неверное время. Или все вместе сразу. Давайте посмотрим, с чем связана такая ошибка и как её избежать.
Ниже приведено окно нового документа 1С Предприятие.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
У нового документа по умолчанию подставляется текущая системная дата, если иное не было указано в настройках 1С Бухгалтерии. Обратите внимание на время — оно устанавливается на 00:00:00.
Приведённая выше картина типична для всех версий 1С Предприятие. Так где же ошибаются пользователи программы при вводе документов?
Прежде всего стоит сказать, что если документ требуется внести в базу 1С текущим временем, то есть сегодняшним числом, то дату изменять вручную не нужно. Дело в том, что при записи нового документа (обратите внимание — номера нет, следовательно, документ ещё не записан) текущей датой его время будет автоматически установлено таким, что он встанет в конец всех сегодняшних документов. Проще говоря, при записи нового документа в базу 1С Бухгалтерии его время будет установлено автоматически и он окажется последним в списке.
Так вот, привыкнув вводить документы только текущим числом, а также привыкнув к тому, что программа сама устанавливает правильные (как кажется пользователю) значения некоторых полей, многие часто забывают, что это не всегда работает. Давайте разберём, когда следует вручную устанавливать дату и/или время документа.
Ниже привожу два самых распространённых случая.
Научиться самостоятельно решать все вопросы в 1С:Бухгалтерии 8.3 Вы можете при помощи нашего специального учебного видеокурса по данной конфигурации. Курс включает в себя 240 практических уроков (42 часа на видео), с некоторыми примерами которых Вы можете ознакомиться на странице описания курса.
Документ вводится "задним числом"
В бухгалтерии, в отличие от торговли, далеко не все документы вводятся текущим временем. Это совершенно нормально. Так вот, если требуется ввести документ не текущей датой, то заполнение такого документа следует начать с установки нужной даты и, по необходимости, времени.
Если требуется ввести много документов на дату, отличающейся от текущей, то лучше всего установить эту дату в настройках программы, чтобы она автоматически подставлялась во все новые документы. Главное, потом не забыть вернуть настройки в прежнее состояние.
Для 1С Бухгалтерии 8.2 установка времени по умолчанию находится в меню Сервис / Параметры.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
В 1С Бухгалтерии 8.3 нужно зайти в раздел Администрирование и на Панели действий выбрать пункт Персональные настройки.
[нажмите на картинку для увеличения]
Справка: как сохранять фото с сайтов
В таком случае дата будет подставляться такая, какую указали и думать об этом не нужно. Если же документ один или их немного, а в настройки лезть лень (хотя они для этого и созданы!), то просто ставьте дату вручную. Главное — не забывать это делать в каждом документе!
Документ уже записан, но требуется изменить дату
Другой случай — вы уже записали документ, а, возможно, и провели его, но вдруг выяснилось, что нужно изменить дату. Особенность такой операции заключается в том, что при изменении даты для уже записанного документа (проведённого или нет — неважно), время требуется установить вручную. Если этого не сделать, то вполне может получиться, что документ "встанет куда попало" (если вам все равно, то можно и не трогать — иногда это не имеет значения).
Особенно это критично в тех случаях, когда от данного документа зависят другие или он сам зависит от других документов. Небольшой пример по определению взаимозависимостей я разбирал в статье про авансовые отчеты.
Более подробно о влиянии порядка документов на особенности их проведения, а также на формируемые ими проводки, я рассматриваю в своем курсе 1С Бухгалтерии 8. Просто запомните — при перестановке записанного документа на другую дату следует быть внимательными и при необходимости установить время вручную!
Подведём итоги
При создании нового документа начинайте заполнять его с самого верха, не пропуская поля (в том числе и дату), которые заполняются автоматически! Это позволит избежать многих ошибок при ведении учета.
Материал статьи будет посвящен вопросу установки даты и времени при создании и записи документов в 1С:Бухгалтерия 3. Тема будет актуальна и для других программных продуктов фирмы 1С, таких как, 1С:Зарплата и Управление Персоналом, 1С:Управление Нашей Фирмы, 1С:Управление Торговлей и др.
Настрою вашу 1С. Опыт с 2004 года. Подробнее →
Установка нужной даты и времени документов в 1С один из важных вопросов при работе пользователей в программе, так как при неверной дате могут возникать различные ошибки и проблемы, связанные с составлением отчетности и проверками.
Как правило при создании документа по умолчанию подставляется текущая дата компьютера и время 0:00:00. Далее после заполнения документа при записи (проведении) время также проставляется текущим. Данное правило устанавливается в настройках. В программе переходим в раздел “Главное” и далее выбираем пункт “Персональные настройки”. В открывшемся окне с настройками нас будет интересовать поле “Рабочая дата”. В нашем случае установлена та настройка, которая описана выше.
Если же, к примеру, нам необходимо занести большое количество документов задним числом, то имеет смысл временно установить переключатель на значение “Другая дата” и установить нужную дату. В том случае, если документов немного, можно изменить дату непосредственно в самом поле документа при его создании.
Далее рассмотрим еще одну настройку, которая позволяет записывать документы по времени в течение дня. Перейдем в раздел “Администрирование” и выберем пункт “Проведение документов“. Данная настройка называется “Время документа устанавливать автоматически”.
Если галочка не включена, тогда при записи документа текущей датой время будет определяться как системное время компьютера. Если пользователь изменил дату документа, то программа установит время на 12:00:00. При установленном флаге, документы разного типа записываются с определенным временем. Так документы реализации и поступления будут записываться раньше, чем документы оплаты. В пользовательском режиме изменить время записи типов документов при включенном механизме не представляется возможным.
Что конкретно удалил либо поменял пользователь в конкретном документе в 1С? Для решения этого вопроса разработчики внедрили специальный механизм хранения версий объектов — так называемое версионирование, с помощью которого вы как раз можете увидеть всю конкретику измененных документов.
В этой статье мы расскажем обо всех плюсах и минусах версионирования, а также покажем на конкретном примере в 1С: Зарплата и управление персоналом ред. 3.1, как работает механизм.
Начиная с платформы 8.3.11, механизм версионирования встроен в систему и называется «История данных». Он имеется во всех конфигурациях, работающих на основе библиотеки стандартных подсистем (БСП). Например, в 1С: Бухгалтерия предприятия он реализован, начиная с версии 3.0.35.
Использование этого механизма актуально как на этапах начала работы с программой, так и при дальнейшем ее использовании, когда имеются пользователи «новички», которые могут что-то «подпортить» в учете.
Версионирование — это механизм хранения истории изменения объектов в 1С, который позволяет:
- просматривать, какие изменения внес пользователь в объект (справочник, документ);
- анализировать версии объектов;
- сравнивать эти версии между собой;
- восстанавливать любую из версий объекта.
Механизм версионирования позволяет пользователю выполнять гибкую настройку хранения данных, выборочно применять к объектам или табличным частям, сохранять данные лишь в определенный пользователем момент, например — при проведении документов.
Плюсов у этого функционала, конечно много.
Но есть и минусы, их тоже нужно учитывать. Важно грамотно подходить к настройке версионирования, т.к. использование данного функционала однозначно приводит к замедлению работы 1С. Это связано с тем, что история данных занимает какое-то место и при неправильной, беспорядочной настройке она может занимать больше места, нежели чем сам объект.
Центр обучения «Клерка» приглашает разобрать не менее важный аспект бухгалтерского учета — ведение учета запасов по новому ФСБУ 5/2019. Бесплатный вебинар уже совсем скоро — 20 августа.
Как включить версионирование в 1С?
Этот механизм может включить как разработчик в конфигураторе, так и сам пользователь в пользовательском режиме.
Для включения версионирования объектов выполните следующие пункты.
Шаг 1. Перейдите в раздел «Администрирование» — «Общие настройки».
Пример раздела в 1С: Зарплата и управление персоналом, ред. 3.1:
Пример раздела в 1С: Бухгалтерия предприятия ред. 3.0.
Шаг 2. Разверните подраздел «История изменений» и установите галочку «Хранить историю изменений». Для перехода к настройкам нажмите гиперссылку «Настроить».
Как видите, в 1С: ЗУП и 1С: Бухгалтерии предприятия эти пункты выглядят совершенно одинаково.
Соответственно, и настройка версионирования во всех конфигурациях 1С выполняется аналогично, т.к. это одна подсистема.
Настройки истории хранения изменений
Рассмотрим основные настройки подсистемы «Версионирование» и механизма «Хранение данных» на примере программы 1С: Зарплата и управление персоналом ред. 3.1.
В составе объектов настройки два пункта: справочники и документы.
Настройку можно выполнить для каждого справочника отдельно, задав срок хранения и указав, когда сохранять версии.
В разделе «Документы» перечислены все имеющиеся в конфигурации документы, для которых также отдельно выполняется настройка хранения данных.
Параметр «Когда сохранять версии»
Для изменения параметра выделите ячейку и нажмите стрелочку. В выпадающем списке выберите нужное значение.
Значение параметра «Когда сохранять версии» может принимать значение:
- «При записи» — версия сохраняется при создании или изменении справочника либо документа;
- «При проведении» — применима для документов, для которых предусмотрено проведение. Запись производится при их проведении;
- «Никогда» — запись истории изменения объекта не ведется.
Применить настройки можно и к группе объектов.
Выберите несколько объектов с помощью кнопки Shift (в указанном диапазоне «с какого по какой») или Ctrl (выборочное выделение) и, нажав кнопку «Установить когда сохранять версии», выберите нужное значение для указанных объектов.
В этом пункте, кроме описанных выше вариантов, доступна настройка «По умолчанию». В данном случае устанавливаются рекомендуемые настройки. Для справочников это — «Никогда», для документов — «При проведении».
Для справочников варианты значений параметров отличаются от значений параметров для документов.
Параметр «Срок хранения версий»
Аналогично задается параметр «Срок хранения версий».
Выделите ячейку и выберите вариант срока хранения заданного элемента.
Он может принимать значение:
- «За последнюю неделю»;
- «За последний месяц»;
- За последние три месяца«;
- «За последний год»;
- «Бессрочно».
Для выбранной группы объектов изменить этот параметр также можно с помощью кнопки «Установить срок хранения версий».
Выделите объекты, нажмите вышеуказанную кнопку и выберите нужное значение.
Рассмотрим настройку на примере.
Пример настройки версионирования в 1С: ЗУП ред. 3.1
Установите настройки хранения истории изменений для документа «Начисление зарплаты и взносов». Значение параметра «Когда сохранять версии» — При проведении«, «Срок хранения» — «За последнюю неделю» (для примера).
После того, как активировано версионирование, в объектах 1С станут доступны кнопки в виде карандаша с часиками — «Перейти к истории изменений».
В нашем примере она расположена в журнале документов на панели инструментов, а также по нажатию кнопки «Еще».
Во втором варианте она выглядит как строка — «История изменений».
При открытии документа, в нем также присутствует такая кнопка и команда по нажатию кнопки «Еще».
Рассмотрим пример, когда бухгалтер вносила изменения в документ «Начисление зарплаты и взносов».
Для иллюстрации примера изменим заработную плату Булочкиной О.И. с 67000 руб. на 75000 руб. и посмотрим, как программа сохранит версии документов и сможем ли мы, используя механизм хранения данных, вернуться к прежней версии.
Нажмите «кнопку-карандашик» — «Перейти к истории изменений».
Становится видно информацию о версиях документа «Начисление зарплаты и взносов»: кто изменил данный объект, а также дату и время изменения.
Для просмотра версии выделите строку и нажмите кнопку «Открыть версию».
В отчете представлены вся информация, показатели и данные документа выделенной версии. Кнопками " " и «-» можно свернуть и развернуть блоки для удобства чтения.
В нашем примере мы знаем, что пользователь изменил зарплату по окладу Булочкиной О.И. на 75000 руб.
Но как же пользователь проанализирует такой объем информации и определит, какие изменения произведены в какой версии?
Для этого есть функция сравнения с помощью одноименной кнопки «Сравнить».
Для сравнения версий выделите нужные строки (с помощью Shift или Ctrl) и нажмите кнопку «Сравнить».
Обратите внимание, при выделении нескольких версий другие команды неактивны, т.к. предназначены для работы с одной строкой-версией.
В отчете отобразится таблица по выделенным версиям объекта. Голубым цветом выделены измененные данные, пролистав и проанализировав которые, пользователь может сопоставить произведенные изменения и при необходимости вернуться к той версии, которая его более устроит
Пролистав таблицу, мы видим, что пользователем Кругловой О. были изменены данные по Булочкиной О.И. Сохраненные версии № 1 и № 2 идентичные, а в версии № 3 прослеживаются изменения.
Обратите внимание на значение поля «Изменения в реквизитах». По умолчанию установлено — «Все». Поэтому отчет получился объемным. Нажав кнопку выбора с тремя точками, пользователь может задать выводимые реквизиты, отметив нужные галочками.
Главный бухгалтер, проанализировав ситуацию, приняла решение восстановить данные документа «Начисления зарплаты и взносов» до внесения изменений зарплаты.
Как это сделать?
Выделите версию объекта, на который хотите перейти и нажмите кнопку «Перейти на версию».
В моделируемом примере нас устроит версия № 2 (до внесения изменений). На нее и перейдем.
В результате проведенных манипуляций в таблице «История изменений: Начисление зарплаты и взносов от 31.08.2021» появилась четвертая версия документа с пометкой — «Выполнен переход к версии № 2 от 10.08.2021 18:32:49» (пример моделировался 10.08.2021).
Откройте документ и проверьте, что в нем изменилось.
Документ перешел к варианту до внесения в него изменений. В нашем примере зарплата сотрудника Булочкиной О.И. автоматически изменилась на 67000 руб. (напомним, она была изменена ранее на 75000 руб.). Начисление НДФЛ и страховых взносов также приняло прежние значения. Т.е. документ полностью принял первоначальный вид.
Этот способ очень удобен. Он позволяет не только отслеживать, когда и кем были произведены изменения, но и «откатывать» состояние объекта в предшествующее состояние. Перейдя на версию объекта и не получив результата, пользователь может повторить операцию снова. Переходы от версии к версии не ограничены и их можно выполнять в пределах хранящихся версий.
Напоминаем, единственный минус версионирования — это то, что хранящиеся данные занимают место и при больших объемах накопленной информации программа может начать притормаживать и подвисать, особенно при работе на слабых компьютерах. Поэтому возможно имеет смысл устанавливать версионирование только для конкретных документов в программе, по которым могут быть спорные моменты.
Объем хранимых версий объектов и их удаление в 1С
Вернемся к разделу «Настройка и хранение истории изменений».
Нажмите гиперссылку «Количество и объем хранения версий объектов».
В отчете представлена информация в графическом и в табличном варианте, где пользователь видит структуру данных версий хранения объектов.
В нашем примере видно, что объект — документ «Начисление зарплаты и взносов» имеет четыре версии и этот объем данных занимает 0,01Мб.
Но это всего лишь один документ. Поэтому, если вы настраиваете версионирование и активно им пользуетесь, смотрите какой объем занимают данные.
Обратите внимание на строку «Очистка устаревших версий». У нас пока таковых не имеется, но при их появлении появится кнопка «Очистить». Здесь также выводится информация об их количестве и объеме. Нажав на эту кнопку старые, неактуальные версии удаляются.
Для автоматизации процесса удаления устаревших версий, установите одноименную галочку «Автоматически удалять устаревшие версии» и вам не придется постоянно отвлекаться на контроль этого процесса.
Теперь вы знаете что такое версионирование и как настроить хранение истории изменения справочников и документов в программах 1С.
Как говорится: «Все гениальное — просто!». Экспериментируйте, используйте этот функционал программы и, главное, не бойтесь что-то испортить, ведь всегда можно вернуть версию объекта. Если вы сочтете это ненужным, то в любой момент вы сможете отключить эту настройку.
Читайте также: