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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ При открытии не вносить изменения в поле выбора

Автор: Constantus 03.08.18, 14:44

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

У меня при открытии формы (нетипового документа) стоит код, который заполняет реквизит "ПериодНачисления" (дата) в формате "Месяц год".
Этот реквизит оформлен как поле выбора. Код заполняет список выбора и в зависимости от даты (первый день месяца) заполняет в нужном формате.

    Если НЕ ЗначениеЗаполнено(ПериодНачисления) Тогда
        СформироватьСписокВыбораМесяца(Год(ТекущаяДата()));
    Иначе
        СформироватьСписокВыбораМесяца(Год(ПериодНачисления));
        ПериодНачисления = ЭлементыФормы.ПериодНачисления.СписокВыбора[Месяц(ПериодНачисления)+1].Значение;
    КонецЕсли;



Процедура СформироватьСписокВыбораМесяца(Знач Год)
    
    Год = Число(Год);
    СписокВыбора = ЭлементыФормы.ПериодНачисления.СписокВыбора;
    СписокВыбора.Очистить();
    СписокВыбора.Добавить(Null);
    СписокВыбора.Добавить(Формат(Год-1, "ЧГ=0"), Формат(Год-1, "ЧГ=0"));
    Для М = 1 По 12 Цикл
        СформДата = Дата(Год, М, 1);
        Наим = Формат(СформДата, "ДФ='ММММ гггг"" г.""'");
        СписокВыбора.Добавить(СформДата, Наим);    
    КонецЦикла;
    СписокВыбора.Добавить(Формат(Год+1, "ЧГ=0"), Формат(Год+1, "ЧГ=0"));
    
КонецПроцедуры



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

Как можно используя эти код, при открытии не проводить переопределение старого значения на новое?

Если ремачу
//ПериодНачисления = ЭлементыФормы.ПериодНачисления.СписокВыбора[Месяц(ПериодНачисления)+1].Значение;

то реквизит после открытия пустой.

Автор: Vidocq05 03.08.18, 15:06

Constantus @ Сегодня, 15:44 * ,
Поцепите этот код на "НачалоВыбораИзСписка".

Автор: ed.kharkov 03.08.18, 15:08

Constantus @ Сегодня, 15:44 * ,
Добрый день.
Так может список выбора формировать в момент начала выбора даты, а не при открытии документа?

Автор: Constantus 03.08.18, 15:23

Vidocq05 @ Сегодня, 18:06 * ,

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

Автор: Vidocq05 03.08.18, 15:35

Цитата(Constantus @ 03.08.18, 15:44) *
"ПериодНачисления" (дата)

Это реквизит формы или объекта?

Автор: Constantus 03.08.18, 15:40

Vidocq05 @ Сегодня, 18:35 * ,

Это реквизит объекта...

Автор: Vidocq05 03.08.18, 15:46

Constantus @ Сегодня, 16:40 * ,
В свойствах элемента формы в поле "Данные" выбран "ПериодНачисления" как реквизит объекта?

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