Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 19

Программирование 1С 8.х для начинающих

  • Категория: 1С:Предприятие
  • Теги: 1С:Бухгалтерия 8.2, 1С:Бухгалтерия 8.3
  • Нет комментариев

В предыдущей статье я рассказал вам про [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0427u0430u0441u0442u044c u043fu0435u0440u0432u0430u044f u0441u0442u0430u0442u044cu0438 u043fu0440u043e u0441u0430u043cu044bu0435 u0447u0430u0441u0442u044bu0435 u043eu0448u0438u0431u043au0438, u0441u043eu0432u0435u0440u0448u0430u0435u043cu044bu0435 u043du0430u0447u0438u043du0430u044eu0449u0438u043cu0438 u043fu043eu043bu044cu0437u043eu0432u0430u0442u0435u043bu044fu043cu0438 1u0421 u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438. u0421u043eu0445u0440u0430u043du0438u0442u044c u0438 u0437u0430u043fu043eu043cu043du0438u0442u044c!»,»image»:»/upload/artemvm.info/information_system_38/3/8/3/item_3833/small_item_3833.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/tipichnye-oshibki-polzovatelej-1s-buhgalterii-8/»}»>типичные ошибки пользователей 1С Бухгалтерии. По крайней мере, про некоторые из них. Данная статья посвящена одной из таких ошибок. Она настолько распространена, что в общем списке её приводить не стоило. Что же это за ошибка?

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

Ниже приведено окно нового документа 1С Предприятие.

image__0112-027-ustanovka-daty-v-dokumente.jpg[нажмите на картинку для увеличения]

У нового документа по умолчанию подставляется текущая системная дата, если иное не было указано в настройках 1С Бухгалтерии. Обратите внимание на время — оно устанавливается на 00:00:00.

Приведённая выше картина типична для всех [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0415u0441u043bu0438 u0412u044b u0445u043eu0442u0438u0442u0435 u043fu043eu043du044fu0442u044c, u0432 u0447u0451u043c u0437u0430u043au043bu044eu0447u0430u0435u0442u0441u044f u0440u0430u0437u043du0438u0446u0430 u043cu0435u0436u0434u0443 u0432u0435u0440u0441u0438u044fu043cu0438 1u0421 u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438 u043fu0440u0435u0434u043fu0440u0438u044fu0442u0438u044f 7 u0438 8, u0430 u0442u0430u043au0436u0435 u0447u0435u043c u043eu0442u043bu0438u0447u0430u044eu0442u0441u044f u0432u043eu0441u044cu043cu0451u0440u043au0438, u0432u043du0438u043cu0430u0442u0435u043bu044cu043du043e u043fu0440u043eu0447u0442u0438u0442u0435 u044du0442u0443 u0443u0447u0435u0431u043du0443u044e u0441u0442u0430u0442u044cu044e.»,»image»:»/upload/artemvm.info/information_system_38/3/9/8/item_3985/small_item_3985.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/chem-otlichaytsya-versii-1c/»}»>версий 1С Предприятие. Так где же ошибаются пользователи программы при вводе документов?

Прежде всего стоит сказать, что если документ требуется [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u041du0435u043au043eu0442u043eu0440u044bu0435 u043eu0447u0435u0432u0438u0434u043du044bu0435 u0438 u043du0435 u043eu0447u0435u043du044c u043fu0440u0435u0438u043cu0443u0449u0435u0441u0442u0432u0430 u043eu043du043bu0430u0439u043d u043eu0431u0443u0447u0435u043du0438u044f u0432u0432u043eu0434u0443 u043fu0435u0440u0432u0438u0447u043du044bu0445 u0434u043eu043au0443u043cu0435u043du0442u043eu0432 u0432 1u0421 u041fu0440u0435u0434u043fu0440u0438u044fu0442u0438u0438.»,»image»:»/upload/artemvm.info/information_system_38/3/9/0/item_3904/small_item_3904.jpg»,»href»:»/information/uchebnye-stati/obrazovanie/kommentarij-k-kursu-vvoda-pervichki/»}»>внести в базу 1С текущим временем, то есть сегодняшним числом, то дату изменять вручную не нужно. Дело в том, что при записи нового документа (обратите внимание — номера нет, следовательно, документ ещё не записан) текущей датой его время будет автоматически установлено таким, что он встанет в конец всех сегодняшних документов. Проще говоря, при записи нового документа в базу 1С Бухгалтерии его время будет установлено автоматически и он окажется [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0427u0442u043e u0442u0430u043au043eu0435 u043au043eu043du0442u0440u043eu043bu044c u043fu043eu0441u043bu0435u0434u043eu0432u0430u0442u0435u043bu044cu043du043eu0441u0442u0438 u043fu0440u043eu0432u0435u0434u0435u043du0438u044f u0434u043eu043au0443u043cu0435u043du0442u043eu0432 u0432 1u0421:u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438 u0438 u0437u0430u0447u0435u043c u043eu043d u043du0443u0436u0435u043d.»,»image»:»/upload/artemvm.info/information_system_38/3/9/1/item_3917/small_item_3917.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/kontrol-posledovatelnosti-provedeniya-dokumentov/»}»>последним в списке.

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

Ниже привожу два самых распространённых случая.

Документ вводится «задним числом»

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

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

Для 1С Бухгалтерии 8.2 установка времени по умолчанию находится в меню Сервис / Параметры.

image__0113-027-ustanovka-daty-v-dokumente.jpg[нажмите на картинку для увеличения]

В 1С Бухгалтерии 8.3 нужно зайти в раздел Администрирование и на Панели действий выбрать пункт Персональные настройки.

image__0114-027-ustanovka-daty-v-dokumente.jpg[нажмите на картинку для увеличения]

В таком случае дата будет подставляться такая, какую указали и думать об этом не нужно. Если же документ один или их немного, а в настройки лезть лень (хотя они для этого и созданы!), то просто ставьте дату вручную. Главное — не забывать это делать в каждом документе!

Документ уже записан, но требуется изменить дату

Другой случай — вы уже записали документ, а, возможно, и провели его, но вдруг выяснилось, что нужно изменить дату. Особенность такой операции заключается в том, что при изменении даты для уже записанного документа (проведённого или нет — неважно), время требуется [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0421u0435u0439u0447u0430u0441 u044f u0440u0430u0441u0441u043au0430u0436u0443 u0412u0430u043c u043fu0440u043e u0440u0443u0447u043du044bu0435 u043eu043fu0435u0440u0430u0446u0438u0438 u0438 u043au043eu0440u0440u0435u043au0442u0438u0440u043eu0432u043au0443 u043fu0440u043eu0432u043eu0434u043eu043a u0432 u0434u043eu043au0443u043cu0435u043du0442u0430u0445.»,»image»:»/upload/artemvm.info/information_system_38/3/8/5/item_3852/small_item_3852.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/ruchnoe-redaktirovanie-provodok/»}»>установить вручную. Если этого не сделать, то вполне может получиться, что документ «встанет куда попало» (если вам все равно, то можно и не трогать — иногда это не имеет значения).

Особенно это критично в тех случаях, когда от данного документа [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0427u0442u043e u0442u0430u043au043eu0435 u043au043eu043du0442u0440u043eu043bu044c u043fu043eu0441u043bu0435u0434u043eu0432u0430u0442u0435u043bu044cu043du043eu0441u0442u0438 u043fu0440u043eu0432u0435u0434u0435u043du0438u044f u0434u043eu043au0443u043cu0435u043du0442u043eu0432 u0432 1u0421:u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u0438 u0438 u0437u0430u0447u0435u043c u043eu043d u043du0443u0436u0435u043d.»,»image»:»/upload/artemvm.info/information_system_38/3/9/1/item_3917/small_item_3917.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/kontrol-posledovatelnosti-provedeniya-dokumentov/»}»>зависят другие или он сам зависит от других документов. Небольшой пример по определению взаимозависимостей я разбирал [u0423u0447u0435u0431u043du044bu0435 u0441u0442u0430u0442u044cu0438]</span>u0421u0435u0439u0447u0430u0441 u043cu044b u0440u0430u0441u0441u043cu043eu0442u0440u0438u043c, u043au0430u043a u0438u0437u0431u0435u0436u0430u0442u044c u043eu0448u0438u0431u043eu043a u043fu0440u0438 u0432u0432u043eu0434u0435 u0430u0432u0430u043du0441u043eu0432u044bu0445 u043eu0442u0447u0435u0442u043eu0432 — u0447u0442u043e u044du0442u043e u0437u0430 u043eu0448u0438u0431u043au0438 u0438 u043au0430u043a u0438u0445 u043du0435 u0441u043eu0432u0435u0440u0448u0438u0442u044c.»,»image»:»/upload/artemvm.info/information_system_38/3/8/3/item_3830/small_item_3830.jpg»,»href»:»/information/uchebnye-stati/1s-predpriyatie/massovyi-vvod-avansovyh-otchetov/»}»>в статье про авансовые отчеты.

Более подробно о влиянии порядка документов на особенности их проведения, а также на формируемые ими проводки, я рассматриваю в своем [ArtemVM.iNFO]</span>u0426u0435u043du0430: 16000 u0440u0443u0431.</strong>u0418u043du0434u0438u0432u0438u0434u0443u0430u043bu044cu043du044bu0439 u043eu043du043bu0430u0439u043d u043au0443u0440u0441 u043fu043e u0432u0435u0434u0435u043du0438u044e u0431u0443u0445u0433u0430u043bu0442u0435u0440u0441u043au043eu0433u043e u0443u0447u0451u0442u0430 u0432 u043au043eu043du0444u0438u0433u0443u0440u0430u0446u0438u0438 1u0421:u0411u0443u0445u0433u0430u043bu0442u0435u0440u0438u044f 8.3 u0434u043bu044f u044eu0440u0438u0434u0438u0447u0435u0441u043au043eu0433u043e u043bu0438u0446u0430 u043du0430 u043eu0441u043du043eu0432u043du043eu0439 u0441u0438u0441u0442u0435u043cu0435 u043du0430u043bu043eu0433u043eu043eu0431u043bu043eu0436u0435u043du0438u044f.»,»image»:»/upload/artemvm.info/shop_3/1/9/6/item_196/small_item_196.jpg»,»href»:»/shop/online/1s-predpriyatie/vedenie-uchyota-v-programme-1s-buhgalteriya-8.3-yuridicheskoe-lico-osno/»}»>курсе 1С Бухгалтерии 8. Просто запомните — при перестановке записанного документа на другую дату следует быть внимательными и при необходимости установить время вручную!

Подведём итоги

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

Авторы публикации

Артём В. Меньщиков

Преподаватель & программист

[u0423u0447u0430u0441u0442u043du0438u043au0438 u043fu0440u043eu0435u043au0442u0430]</span>u0410u0432u0442u043eu0440 u043eu043du043bu0430u0439u043d u043au0443u0440u0441u043eu0432 u0438 u0443u0447u0435u0431u043du044bu0445 u0432u0438u0434u0435u043eu043au0443u0440u0441u043eu0432, u043eu0441u043du043eu0432u043du043eu0439 u043fu0440u0435u043fu043eu0434u0430u0432u0430u0442u0435u043bu044c u043fu0440u043eu0435u043au0442u0430, u043fu0440u043eu0433u0440u0430u043cu043cu0438u0441u0442. u0420u0430u0437u0440u0430u0431u043eu0442u0447u0438u043a u0438 u0430u0434u043cu0438u043du0438u0441u0442u0440u0430u0442u043eu0440 u043eu0431u0440u0430u0437u043eu0432u0430u0442u0435u043bu044cu043du043eu0433u043e u0438 u0438u043du0444u043eu0440u043cu0430u0446u0438u043eu043du043du043eu0433u043e u043fu0440u043eu0435u043au0442u0430 ArtemVM.INFO.»,»image»:»/upload/artemvm.info/information_system_47/3/7/8/item_3787/small_item_3787.jpg»,»href»:»/information/uchastniki-proekta/artemvm/»}»>подробнее

Содержание[Убрать]

В программе 1с 8-ой версии Дата это объект, который состоит из самой календарной даты и времени.

При программировании можно использовать следующие конструкции для оперирования временем:

Дата

Чтобы получить объект «Дата» существует несколько способов. Например, чтобы установить программно дату «30.12.2010 23:59:59»: 

Док.Дата = '20101230235959' ;Док.Дата = Дата("20101230235959");Док.Дата = Дата(2010,12,30,23,59,59);Док.Дата = Дата("2010-12-30 23:59:59");
ДатаВремя(2010,12,30,23,59,59)
ПустаяДата = Дата(0001,01,01,00,00,00);//Причем секунды записывать не обязательно.ПустаяДата = Дата(0001,01,01);
ДатаВремя(1,1,1)
РазностьВСекундах = Дата("20101230235959") - Дата("20081115035529");//67 032 270
РазностьВСекундах = Дата("20101230235959") - Дата("20081115035529");РазностьВДнях = РазностьВСекундах/86400;

В случае если нужна полная разница(Лет, месяцев, дней) между датами то есть следующие варианты:1. Алгоритм который первый приходит в голову, НЕ точный:

РазностьВСекундах = Дата("20101230235959") - Дата("20081115035529");РазностьВДнях = РазностьВСекундах/86400; ПолнаяРазница = «Лет: » + Цел(РазностьВДнях/365) + « Месяцев: » + Цел((РазностьВДнях%365)/30) + « Дней: » + (РазностьВДнях%365)%30;

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

Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Экспорт  Лет= 0; Месяцев= 0; Дней= 0; Если Дата1 > Дата2 Тогда  ВременнаяДата = Дата1; Если День(ВременнаяДата) < День(Дата2) Тогда Дней = (ВременнаяДата - ДобавитьМесяц(ВременнаяДата,-1))/86400; ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1); КонецЕсли; Если Месяц(ВременнаяДата) < Месяц(Дата2) Тогда ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12); Месяцев = 12; КонецЕсли; Лет= Макс( Год(ВременнаяДата)- Год(Дата2),0); Месяцев= Макс(Месяцев+ Месяц(ВременнаяДата)- Месяц(Дата2),0); Дней= Макс(Дней+ День(ВременнаяДата)- День(Дата2),0);  // скорректируем отображаемое значение, если "вмешалось" разное количество дней в месяцах Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней*86400) Тогда Дней = Дней + (День(КонецМесяца(Дата2)) - День(НачалоМесяца(Дата2))) - (День(КонецМесяца(ДобавитьМесяц(Дата1,-1))) - День(НачалоМесяца(ДобавитьМесяц(Дата1,-1)))); КонецЕсли;  КонецЕсли;КонецПроцедуры// РазобратьРазностьДат

Для запросов же можно использовать способ предложенный здесь: http://kb.mista.ru/article.php?id=664Автор взял за основу предыдущую процедуру и перевел её на язык запросов так для вычисления года нужно записать следующее(я немного изменил запрос для наглядности):

Для месяца:

Для дня:

Время

Для получения значений времени используются следующие методы:

СекундаДаты = Секунда(Дата("20081115035529")); // 29МинутаДаты = Минута(Дата("20081115035529")); // 55ЧасДаты = Час(Дата("20081115035529")); // 3

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

Используемые источники:

  • https://artemvm.info/information/uchebnye-stati/1s-predpriyatie/ustanovka-daty-v-dokumente/
  • http://1s-portal.ru/index.php/stati/common-questions/2-introduction/38-vremyav1s.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации