1с как изменить время документа программно
Диплом позволяет ошибаться значительно увереннее.
Закон диплома.
1С:Школа.
Выпуск 32.
"Время документов ".
в текущее время
и в произвольно указанное время.
в оперативном учете бывает еще время после ТА (точки актуальности)
Временем документа можно управлять программно. Для этого, есть два метода: ПолучитьВремя() и УстановитьВремя(). Методы подробно описаны даже в синтаксис помощнике. Если у Вас есть регулярная проблема с сортировкой документов внутри даты, то можно в общем журнале создать кнопки "Вверх" и "Вниз", которые бы меняли текущий документ с соседним в зависимости от нажатой кнопки. Примерный модуль процедуры, вызываемой по кнопке "Вверх":
Процедура Вверх()
Док=ТекущийДокумент; //получили текущий документ в журнале
Если док.Выбран()=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С
Когда необходимо создать новый документ не с текущей датой, можно просто вручную заполнить соответствующее поле. Оно находится сразу под главным меню формы и справа от поля с номером. Ручные настройки помогут и при необходимости изменения даты в уже записанных и проведенных документах. Но если вам предстоит создать целую серию новых документов и все "задним числом", то удобнее будет настроить автоматическое проставление нужной даты. Для примера рассмотрим способы настройки в конфигурации Бухгалтерия 8:
В главном меню нажмите на «Сервис»;
Выберите пункт «Параметры»;
В открывшейся форме снимите галочку с опции по умолчанию «Использовать текущее время компьютера» и задайте нужную дату.
Откройте раздел «Администрирование»;
На «Панели действий» перейдите в «Персональные настройки»;
Поставьте переключатель на «Другую дату» и настройте время.
После окончания работы обязательно верните настройки к прежним значениям.
При возникновении ошибок или затруднений с настройками в новых или существующих документах, обращайтесь за помощью к нашим специалистам. Мы поможем навести порядок в настройках, и ваша документальная база будет безукоризненно логичной и полной.
Материал статьи будет посвящен вопросу установки даты и времени при создании и записи документов в 1С:Бухгалтерия 3. Тема будет актуальна и для других программных продуктов фирмы 1С, таких как, 1С:Зарплата и Управление Персоналом, 1С:Управление Нашей Фирмы, 1С:Управление Торговлей и др.
НАСТРОЙКА 1С. ЕСТЬ ЗАДАЧА? БЕСПЛАТНАЯ ОЦЕНКА! Смотреть подробнее →
Установка нужной даты и времени документов в 1С один из важных вопросов при работе пользователей в программе, так как при неверной дате могут возникать различные ошибки и проблемы, связанные с составлением отчетности и проверками.
Как правило при создании документа по умолчанию подставляется текущая дата компьютера и время 0:00:00. Далее после заполнения документа при записи (проведении) время также проставляется текущим. Данное правило устанавливается в настройках. В программе переходим в раздел “Главное” и далее выбираем пункт “Персональные настройки”. В открывшемся окне с настройками нас будет интересовать поле “Рабочая дата”. В нашем случае установлена та настройка, которая описана выше.
Если же, к примеру, нам необходимо занести большое количество документов задним числом, то имеет смысл временно установить переключатель на значение “Другая дата” и установить нужную дату. В том случае, если документов немного, можно изменить дату непосредственно в самом поле документа при его создании.
Далее рассмотрим еще одну настройку, которая позволяет записывать документы по времени в течение дня. Перейдем в раздел “Администрирование” и выберем пункт “Проведение документов“. Данная настройка называется “Время документа устанавливать автоматически”.
Если галочка не включена, тогда при записи документа текущей датой время будет определяться как системное время компьютера. Если пользователь изменил дату документа, то программа установит время на 12:00:00. При установленном флаге, документы разного типа записываются с определенным временем. Так документы реализации и поступления будут записываться раньше, чем документы оплаты. В пользовательском режиме изменить время записи типов документов при включенном механизме не представляется возможным.
Диплом позволяет ошибаться значительно увереннее.
Закон диплома.
1С:Школа.
Выпуск 32.
"Время документов ".
Опытным пользователям можно доверить самим управлять временем проведения документа. Для этого в "Сервис" - "Параметры" на одной из закладок надо установить флаг "Запрашивать время проведения...". В этом случае при записи документа будет выдаваться запрос о времени, на которое надо записать документ. Вариантов может быть несколько:
в текущее время
и в произвольно указанное время.
в оперативном учете бывает еще время после ТА (точки актуальности)
Вообще по смыслу, я думаю, ясно назначение каждого пункта. Обычно пользователю надо объяснить "Все приходные документы - записывай на начало дня, а все расходные на конец". В этом случае расход всегда будет после прихода. Если флаг "Запрашивать время. " не стоит, то документы записываются в текущее время (если в модуле не наконфигурено что-нибудь. см.ниже)
Временем документа можно управлять программно. Для этого, есть два метода: ПолучитьВремя() и УстановитьВремя(). Методы подробно описаны даже в синтаксис помощнике. Если у Вас есть регулярная проблема с сортировкой документов внутри даты, то можно в общем журнале создать кнопки "Вверх" и "Вниз", которые бы меняли текущий документ с соседним в зависимости от нажатой кнопки. Примерный модуль процедуры, вызываемой по кнопке "Вверх":
Процедура Вверх()
Док=ТекущийДокумент; //получили текущий документ в журнале
Если док.Выбран()=0 тогда //бывает, что нет документов
возврат;
КонецЕсли;
Если док.Проведен()=1 Тогда //менять время можно тольку у распроведенного документа
Предупреждение("Распроведите документ");
возврат;
КонецЕсли;
//ищем ближайший документ сверху
д=создатьОбъект("Документ");
д.ОбратныйПОрядок(1);
д.ВЫбратьДокументы(,док);
//сначала получаем наш текущий документ
Если д.ПолучитьДокумент()=0 тогда //документа сверху может и не быть
возврат;
конецЕсли;
//теперь получаем тот документ, над которым надо подняться
Если д.ПолучитьДокумент()=0 тогда
возврат;
конецЕсли;
ч=0; м=0; с=0;
д.ПолучитьВремя(ч,м,с); //получаем время найденного документа
//и переводим его в секунды, чтобы отнять 1 секунду
Секунд=с+м*60+ч*3600;//перевели в секунды
НовоеВремя=секунд-1;
//а теперь обратно в часы, минуты и секунды
ч=Цел(новоевремя/3600);
м=цел((новоевремя-ч*3600)/60);
с=новоеВремя-ч*3600-м*60;
//менять время можно только у тех докуентов,
//что получены через СоздатьОбъект
д.найтиДокумент(док);
д.УстановитьВремя(ч,м,с);//устанавливаем время документа
д.записать();
конецПРоцедуры
Процедура имеет недостатки незаметные на первый взгляд. Она корректно двигает документ вверх, пока вверху не окажется документ их другой даты. Как только это случится - модуль сбойнет. Задание для самостоятельной работы: доработать процедуру таким образом, чтобы она корректно обрабатывала встречу с документом из другой даты. Еще одно задание: напишите процедуру для продвижения текущего документа "вниз" по журналу документов. И еще одно задание: сделайте одну универсальную процедуру, которая бы двигала документ вверх или вниз в зависимости от переданного в неё параметра.
Но, чтобы избежать проблем со временем документов, рекомендую несколько методов
АвтоВремяНачалоДня();
АвтоВремяКонецДня();
АвтоВремяТекущее();
Эти методы (естественно один из них) записываются в процедуру ВводНового() нужного Вам документа и запись документа автоматически происходит в соответствующее время. При этом надо помнить, что настройки в "Сервис"-"Параметры"- "Запрашивать время. " в данном случае игнорируются и пользователь не увидит диалога о выборе времени, как бы он не хотел этого. Но в журнале документов время всегда можно будет изменить.
На сайте 1С:Школа можно скачать архив рассылки с 1 по 30 выпуск в rar-архиве. Так же на сайте, открылся новый раздел "Библиотека". В нем вы найдете подборку книг и методического материала по 1С:Бухгалтерии, 1С:Торговле, 1С:Зарплате, бухгалтерскому учету и Конфигурированию. В разделе "Бухгалтерский учет" есть книга "Бухучет для технарей".
Читайте также: