Версия для печати темы (https://pro1c.org.ua/index.php?s=decc6fdc0bef75b6e6246f19042f1627&showtopic=44891)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Управление торговлей для Украины редакция 3 (Управление торговлей для России редакция 11) _ Проведение документов Поступление товаров и услуг в определенное время

Автор: Milman 25.03.18, 18:17

Всем добрый день!
Подскажите пжл, можно ли в версии 1С:Предприятие 8.2 (8.2.18.61) сделать так, чтобы все документы Поступления товаров и услуг проводились
в определенное время при нажатии кнопки Провести ? Т.е. сейчас , когда я провожу документ, ему автоматически назначается текущее время.
Мне же надо, чтобы документ проводился в 8.00 утра и каждый последующуй документ Поступление товаров и услуг так же проводился в 8.00.

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

// Процедура вызывается при нажатии кнопки "Заполнить и провести" командной панели формы,
// вызывает заполнение документа с проведением.
Процедура ДействияФормыДействиеЗаполнитьИПровести(Кнопка)

    // Заполнять с проведением можно документы с текущую датой
    Если НачалоДня(Дата) = НачалоДня(ТекущаяДата()) Тогда
        Если НЕ ЭтоНовый() Тогда

            // Если документ ранее был записан, то он будет переноситься в конец дня из-за оперативного проведения, о чем следует предупредить.
            Ответ = Вопрос("В режиме заполнения с проведением документ будет проводиться оперативно. " + Символы.ПС + "Продолжить?", РежимДиалогаВопрос.ДаНет);
            Если НЕ Ответ = КодВозвратаДиалога.Да Тогда
                Возврат;
            КонецЕсли;
        КонецЕсли;
    Иначе
        Возврат;
    КонецЕсли;

Автор: uanr81 25.03.18, 20:49

Milman @ Сегодня, 18:17 * ,
Я так понял вы хотите всегда при проведении этого документа использовать текущую дату 8:00, когда записан документ другой датой. Не буду спрашивать зачем это вам.
В обработке проведения документа вначале модуля подмените реквизит Дата,

Процедура ОбработкаПроведения(Отказ, Режим)
//В начало модуля добавляем
Дата = дата("" +Лев(строка(текущаядата()), 11)+"08:00:00");
//конец добавления
КонецПроцедуры

Автор: Vofka 26.03.18, 8:37

uanr81, так не сработает, потому что так как вы написали, дата меняется после того, как документ записался. Подобные вещи нужно делать перед записью. Но даже если этот код просто перенесте в ПередЗаписью, то работать оно тоже, скорее всего, не будет, потому что в случае когда разрешено оперативное проведение (а это по умолчанию так), то при проведении документа текущей датой, система будет устанавливать текущее время. Ну и сам код можно нужно написать более корректно:

Дата = НачалоДня(ТекушаяДата()) + 8 * 60 * 60;


Milman,

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    РежимПроведения = РежимПроведенияДокумента.Неоперативный;
    
    Дата = НачалоДня(Дата) + 8 * 60 * 60;
    
КонецПроцедуры

Автор: uanr81 26.03.18, 18:59

Vofka @ Сегодня, 8:37 * ,
Дата документа здесь не меняется, меняется значение для поля период в регистрах проведения этого документа, я понял что это преследовал создатель темы.

Автор: Milman 26.03.18, 20:29

uanr81 @ Сегодня, 19:59 * ,
Цель состоит в том, чтобы документы Поступление товаров и услуг всегда проводились в одно время (например 8.00) не зависимо от того, оперативно или нет проводится документ. Это необходимо для того, что зачастую бывает краснота по складу товаров, потому что Реализация проводится раньше , чем Поступление товаров и услуг и за последовательностью этих документов надо следить и проверять.
А при фиксации времени проводки документов этой ошибки можно избежать.

Автор: uanr81 26.03.18, 21:45


Milman @ Сегодня, 20:29 * ,
Я вам уже написал, дата документа не изменится, проводка будет всегда текущей датой 8:00. Если хотите можно написать

Дата = дата("" +Лев(строка(Дата), 11)+"08:00:00");

тогда проведение документа всегда будет датой записанного документа но временем 8:00:00, и все документы будут проводится в этой секунде. Но вся прелесть того, что поле период в регистрах учета для этого документа соответствует реквизиту дата записанного документа - теряется. Может вы только хотите изменять дату (под этим понимается и время включительно) документа при его записи, тогда меняйте запись самого документа как вам советуют.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua