Всем добрый день!
Подскажите пжл, можно ли в версии 1С:Предприятие 8.2 (8.2.18.61) сделать так, чтобы все документы Поступления товаров и услуг проводились
в определенное время при нажатии кнопки Провести ? Т.е. сейчас , когда я провожу документ, ему автоматически назначается текущее время.
Мне же надо, чтобы документ проводился в 8.00 утра и каждый последующуй документ Поступление товаров и услуг так же проводился в 8.00.
Если я правильно разобрался, то мне надо ковырять в след. процедуре :
// Процедура вызывается при нажатии кнопки "Заполнить и провести" командной панели формы,
// вызывает заполнение документа с проведением.
Процедура ДействияФормыДействиеЗаполнитьИПровести(Кнопка)
// Заполнять с проведением можно документы с текущую датой
Если НачалоДня(Дата) = НачалоДня(ТекущаяДата()) Тогда
Если НЕ ЭтоНовый() Тогда
// Если документ ранее был записан, то он будет переноситься в конец дня из-за оперативного проведения, о чем следует предупредить.
Ответ = Вопрос("В режиме заполнения с проведением документ будет проводиться оперативно. " + Символы.ПС + "Продолжить?", РежимДиалогаВопрос.ДаНет);
Если НЕ Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Milman @ Сегодня, 18:17
,
Я так понял вы хотите всегда при проведении этого документа использовать текущую дату 8:00, когда записан документ другой датой. Не буду спрашивать зачем это вам.
В обработке проведения документа вначале модуля подмените реквизит Дата,
Процедура ОбработкаПроведения(Отказ, Режим)
//В начало модуля добавляем
Дата = дата("" +Лев(строка(текущаядата()), 11)+"08:00:00");
//конец добавления
КонецПроцедуры
uanr81, так не сработает, потому что так как вы написали, дата меняется после того, как документ записался. Подобные вещи нужно делать перед записью. Но даже если этот код просто перенесте в ПередЗаписью, то работать оно тоже, скорее всего, не будет, потому что в случае когда разрешено оперативное проведение (а это по умолчанию так), то при проведении документа текущей датой, система будет устанавливать текущее время. Ну и сам код можно нужно написать более корректно:
Дата = НачалоДня(ТекушаяДата()) + 8 * 60 * 60;
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
РежимПроведения = РежимПроведенияДокумента.Неоперативный;
Дата = НачалоДня(Дата) + 8 * 60 * 60;
КонецПроцедуры
Vofka @ Сегодня, 8:37
,
Дата документа здесь не меняется, меняется значение для поля период в регистрах проведения этого документа, я понял что это преследовал создатель темы.
uanr81 @ Сегодня, 19:59
,
Цель состоит в том, чтобы документы Поступление товаров и услуг всегда проводились в одно время (например 8.00) не зависимо от того, оперативно или нет проводится документ. Это необходимо для того, что зачастую бывает краснота по складу товаров, потому что Реализация проводится раньше , чем Поступление товаров и услуг и за последовательностью этих документов надо следить и проверять.
А при фиксации времени проводки документов этой ошибки можно избежать.
Milman @ Сегодня, 20:29
,
Я вам уже написал, дата документа не изменится, проводка будет всегда текущей датой 8:00. Если хотите можно написать
Дата = дата("" +Лев(строка(Дата), 11)+"08:00:00");
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua