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

Диплом позволяет ошибаться значительно увереннее.
Закон диплома
.

1С:Школа.
Выпуск 32.
"Время документов ".

Сегодня поговорим о времени. В нашем случае это не относится к философии, а имеет непосредственное отношение к документам в 1С:Предприятии. Все вводимые документы, располагаются в журналах и упорядочены по датам. А внутри одной даты – по времени записи документа. По другому принципу отсортировать документы в журналах нельзя. Время документа, кроме упорядочивания, имеет еще одну важную роль. В системе возможно выполнение запросов "на документ". Это означает, что, например, можно получить остатки по какому-нибудь счету на документ. Это очень удобно и позволяет вести учет в реальном режиме времени: например, отписывать документы по складу и "вживую" наблюдать динамику изменения остатков. И именно в этот момент могут возникать проблемы со временем. Как это происходит? Рассмотрим простейший пример: поступление и продажу товара. По логике ясно, что сначала товар должен поступить, а потом уже должен быть продан. Обычно так и делается. Но по различным причинам (часто по вине пользователей) документ "Поступление" записывается на 18 часов, а расходные накладные записываются с 12 часов 45 минут до 21 часа (все в рамках одного дня). В результате, те расходные накладные, которые выписаны с 12-45 до 18 часов – не видят оприходованный товар. Хорошо если система предупредит об этом и выдаст сообщение о недостатке товара и некорректном расчете себестоимости товара. Но этого может и не случиться. Как это исправить?

Время документа можно исправить. Для этого надо сделать его не проведенным: щелкаете по документу в журнале правой клавишей мышки и выбираете "Сделать не проведенным". И изменить время документа: снова щелкаете правой клавишей мышки и говорите "Изменить время документа. ". После этого в открывшемся окне вы может указать любое понравившееся время. Естественно его нужно указать правильно. Правильность означает, что документ должен быть записан до того, как другие документы будут пользоваться результатами его проведения (товар должен поступить до того, как продан; деньги в кассу должны поступить до того, как будут выданы из кассы).

Опытным пользователям можно доверить самим управлять временем проведения документа. Для этого в "Сервис" – "Параметры" на одной из закладок надо установить флаг "Запрашивать время проведения...". В этом случае при записи документа будет выдаваться запрос о времени, на которое надо записать документ. Вариантов может быть несколько:

в текущее время

и в произвольно указанное время.

в оперативном учете бывает еще время после ТА (точки актуальности)

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

Читайте также:  Быстрое сканирование в pdf

Временем документа можно управлять программно. Для этого, есть два метода: ПолучитьВремя() и УстановитьВремя(). Методы подробно описаны даже в синтаксис помощнике. Если у Вас есть регулярная проблема с сортировкой документов внутри даты, то можно в общем журнале создать кнопки "Вверх" и "Вниз", которые бы меняли текущий документ с соседним в зависимости от нажатой кнопки. Примерный модуль процедуры, вызываемой по кнопке "Вверх":
Процедура Вверх()
Док=ТекущийДокумент; //получили текущий документ в журнале
Если док.Выбран()=0 тогда //бывает, что нет документов
возврат;
КонецЕсли;
Если док.Проведен()=1 Тогда //менять время можно тольку у распроведенного документа
Предупреждение("Распроведите документ");
возврат;
КонецЕсли;
//ищем ближайший документ сверху
д=создатьОбъект("Документ");
д.ОбратныйПОрядок(1);
д.ВЫбратьДокументы(,док);
//сначала получаем наш текущий документ
Если д.ПолучитьДокумент()=0 тогда //документа сверху может и не быть
возврат;
конецЕсли;
//теперь получаем тот документ, над которым надо подняться
Если д.ПолучитьДокумент()=0 тогда
возврат;
конецЕсли;
ч=0; м=0; с=0;
д.ПолучитьВремя(ч,м,с); //получаем время найденного документа
//и переводим его в секунды, чтобы отнять 1 секунду
Секунд=с+м*60+ч*3600;//перевели в секунды
НовоеВремя=секунд-1;
//а теперь обратно в часы, минуты и секунды
ч=Цел(новоевремя/3600);
м=цел((новоевремя-ч*3600)/60);
с=новоеВремя-ч*3600-м*60;
//менять время можно только у тех докуентов,
//что получены через СоздатьОбъект
д.найтиДокумент(док);
д.УстановитьВремя(ч,м,с);//устанавливаем время документа
д.записать();
конецПРоцедуры

Процедура имеет недостатки незаметные на первый взгляд. Она корректно двигает документ вверх, пока вверху не окажется документ их другой даты. Как только это случится – модуль сбойнет. Задание для самостоятельной работы: доработать процедуру таким образом, чтобы она корректно обрабатывала встречу с документом из другой даты. Еще одно задание: напишите процедуру для продвижения текущего документа "вниз" по журналу документов. И еще одно задание: сделайте одну универсальную процедуру, которая бы двигала документ вверх или вниз в зависимости от переданного в неё параметра.
Но, чтобы избежать проблем со временем документов, рекомендую несколько методов
АвтоВремяНачалоДня();
АвтоВремяКонецДня();
АвтоВремяТекущее();
Эти методы (естественно один из них) записываются в процедуру ВводНового() нужного Вам документа и запись документа автоматически происходит в соответствующее время. При этом надо помнить, что настройки в "Сервис"-"Параметры"- "Запрашивать время. " в данном случае игнорируются и пользователь не увидит диалога о выборе времени, как бы он не хотел этого. Но в журнале документов время всегда можно будет изменить.

На сайте 1С:Школа можно скачать архив рассылки с 1 по 30 выпуск в rar-архиве. Так же на сайте, открылся новый раздел "Библиотека". В нем вы найдете подборку книг и методического материала по 1С:Бухгалтерии, 1С:Торговле, 1С:Зарплате, бухгалтерскому учету и Конфигурированию. В разделе "Бухгалтерский учет" есть книга "Бухучет для технарей".

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

Читайте также:  1С работа с метаданными

Работа со временем в 1С

Дата и время являются важнейшими характеристиками любого вида документов в 1С: Предприятие. Именно на основании этих параметров выстаивается последовательность проведения всех операций. Учитывая взаимозависимость бизнес-процессов, некоторые документы нельзя создать без предварительной записи и проведения других. Вся логика документооборота предприятия основана на значении временных параметров отдельных документов. Они позволяют проследить порядок движения и баланс ресурсов в каждый конкретный временной период.

1С по умолчанию использует системное время, то есть данные машины, на которой она установлена. Это значит, что если при создании нового документа вы не указываете в специальном поле значение, то оно, как и дата, проставляется автоматически. В результате вы получаете документ с датой, соответствующей дате компьютера. Чаще всего за один день пользователь бухгалтерской программы создает много документов. В этом случае каждый последующий документ отправляется в конец списка документов, созданных в этот конкретный день. Обратите внимание, что для регламентных документов 1С проставляет значение 23:23:59, то есть переносит их на конец дня. Для 1С текущее время – это настройка по умолчанию.

Возможные проблемы

В такой ситуации наиболее очевидной проблемой является неправильное время на самом компьютере. Устранить ее можно, если настроить ПК на автоматическую синхронизацию с интернетом. Обратите внимание на настройку вашего часового пояса – должно совпадать не только время, но и город. Если вашего населенного пункта нет в настройках, то выбирайте часовой пояс, где указан любой ближайший к вам крупный город вашей страны. Это предупредит путаницу при автоматическом переходе на летнее или зимнее время – не все страны его осуществляют.

Есть еще один проблемный момент – поведенческий. Если пользователь занимается бухгалтерией постоянно, он привыкает к автоматической установке времени. То есть при создании нового документа пользователь начинает доверять системе и полностью игнорирует заполнение соответствующего поля. Это не может не приводить к ошибкам, ведь достаточно часто возникает необходимость создать новый документ "задним числом". Например, чтобы заменить в базе ошибочный документ или восстановить ненароком удаленный – ситуации могут быть разными.

Устанавливаем дату и время в 1С

Когда необходимо создать новый документ не с текущей датой, можно просто вручную заполнить соответствующее поле. Оно находится сразу под главным меню формы и справа от поля с номером. Ручные настройки помогут и при необходимости изменения даты в уже записанных и проведенных документах. Но если вам предстоит создать целую серию новых документов и все "задним числом", то удобнее будет настроить автоматическое проставление нужной даты. Для примера рассмотрим способы настройки в конфигурации Бухгалтерия 8:

Читайте также:  Как получить сертификат яндекс диска

В главном меню нажмите на «Сервис»;

Выберите пункт «Параметры»;

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

Откройте раздел «Администрирование»;

На «Панели действий» перейдите в «Персональные настройки»;

Поставьте переключатель на «Другую дату» и настройте время.

После окончания работы обязательно верните настройки к прежним значениям.

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

Отправить эту статью на мою почту

Материал статьи будет посвящен вопросу установки даты и времени при создании и записи документов в 1С:Бухгалтерия 3. Тема будет актуальна и для других программных продуктов фирмы 1С, таких как, 1С:Зарплата и Управление Персоналом, 1С:Управление Нашей Фирмы, 1С:Управление Торговлей и др.

НАСТРОЙКА 1С. ЕСТЬ ЗАДАЧА? БЕСПЛАТНАЯ ОЦЕНКА! Смотреть подробнее →

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

Как правило при создании документа по умолчанию подставляется текущая дата компьютера и время 0:00:00. Далее после заполнения документа при записи (проведении) время также проставляется текущим. Данное правило устанавливается в настройках. В программе переходим в раздел “Главное” и далее выбираем пункт “Персональные настройки”. В открывшемся окне с настройками нас будет интересовать поле “Рабочая дата”. В нашем случае установлена та настройка, которая описана выше.

Если же, к примеру, нам необходимо занести большое количество документов задним числом, то имеет смысл временно установить переключатель на значение “Другая дата” и установить нужную дату. В том случае, если документов немного, можно изменить дату непосредственно в самом поле документа при его создании.

Далее рассмотрим еще одну настройку, которая позволяет записывать документы по времени в течение дня. Перейдем в раздел “Администрирование” и выберем пункт “Проведение документов“. Данная настройка называется “Время документа устанавливать автоматически”.

Если галочка не включена, тогда при записи документа текущей датой время будет определяться как системное время компьютера. Если пользователь изменил дату документа, то программа установит время на 12:00:00. При установленном флаге, документы разного типа записываются с определенным временем. Так документы реализации и поступления будут записываться раньше, чем документы оплаты. В пользовательском режиме изменить время записи типов документов при включенном механизме не представляется возможным.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector