Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:46

Запись в поле ввода из перечисления

Автор Mitka90, 19 янв 2018, 09:35

0 Пользователей и 1 гость просматривают эту тему.

Mitka90

Всем добрый день! Возникла такая проблема: при новой записи в справочнике "Абоненты" не сохраняется в поле ввода значение, которое автоматически ставится при нажатии на кнопку "Запись", но при новом запуске поле с перечислениями становится пустым. Или если вместо поля ввода в коде "СтатусДоговораНаТО2" можно прописать "СправочникОбъект.СтатусДоговораНаТО", но тогда вовсе ничего не вставляется автоматически, правда, с ним все успешно добавляется при использовании без перечислений (но это не нужно в данном случае, только с использованием готовых перечислений):


Процедура ПередЗаписью(Отказ)
СправочникОбъект.ДоговорТОНомер = СокрЛП(СправочникОбъект.ДоговорТОНомер);
СправочникОбъект.Наименование = СформироватьНаименование();
ЭлементыФормы.Наименование.Значение = СправочникОбъект.Наименование;
СправочникОбъект.ПоследнееИзменениеПользователь = ИмяПользователя();
СправочникОбъект.ПоследнееИзменениеДата = ТекущаяДата();
если ЗначениеЗаполнено(ФИО)=Ложь Тогда
Сообщить("Введите ФИО");
Отказ=Истина;
КонецЕсли;

Если СправочникОбъект.ДоговорТОДата < ТекущаяДата() И ТекущаяДата() < СправочникОбъект.ДоговорТОДатаОкончания Тогда СтатусДоговораНаТО2 = Перечисления.СтатусДоговораНаТО.Действует
Иначе СтатусДоговораНаТО2 = Перечисления.СтатусДоговораНаТО.НеДействует;
КонецЕсли;
Если СправочникОбъект.ДоговорТОДата = Дата(1,1,1) И СправочникОбъект.ДоговорТОДатаОкончания = Дата(1,1,1) Тогда СтатусДоговораНаТО2 = Перечисления.СтатусДоговораНаТО._;
КонецЕсли;
КонецПроцедуры


С этой процедурой также связана ещё одна:

Процедура ФИОПриИзменении(Элемент)
ПередЗаписью(Отказ);
//////////////////////// проверка уникальности
если ЭтоНовый() Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Абоненты.Ссылка,
// | Абоненты.ФИО
| Абоненты.ЛицевойСчетМРГ
|ИЗ
| Справочник.Абоненты КАК Абоненты
|ГДЕ
// | Абоненты.ФИО = &НаимТекПользователя
| Абоненты.ЛицевойСчетМРГ = &НаимТекПользователя
| И Абоненты.Ссылка <> &СсылкаТекПользователя";
Запрос.УстановитьПараметр("СсылкаТекПользователя", Ссылка);
// Запрос.УстановитьПараметр("НаимТекПользователя", фио);
Запрос.УстановитьПараметр("НаимТекПользователя", ЛицевойСчетМРГ);
Если НЕ Запрос.Выполнить().Пустой() Тогда
Форма=Справочники.Абоненты.ПолучитьФормуСписка();
Форма.Заголовок="Выбор абонента";
//Форма.Отбор.фио.Использование=Истина;
//Форма.Отбор.фио.ВидСравнения=ВидСравнения.Равно;
//Форма.Отбор.фио.Значение=фио;
Форма.Отбор.ЛицевойСчетМРГ.Использование=Истина;
Форма.Отбор.ЛицевойСчетМРГ.ВидСравнения=ВидСравнения.Равно;
Форма.Отбор.ЛицевойСчетМРГ.Значение=ЛицевойСчетМРГ;
Форма.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр=Ложь;
Если Форма.Открыта() Тогда
Форма.Закрыть();
КонецЕсли;
//если есть дубли, в выборке будут данные
//Если не ЭтоНовый() Тогда
// Отказ = Истина;
// Сообщение = Новый СообщениеПользователю;
// Сообщение.КлючДанных = Справочники.Абоненты;
// Сообщение.Поле = "ЛицевойСчетМРГ";
// Сообщение.Текст = "Лицевой счёт с таким Id уже существует";
// Сообщение.Сообщить();
//КонецЕсли;
ВыбранноеЗначение=Форма.ОткрытьМодально();
//Сообщить("ФИО " + фио + " не уникально");
// Отказ = Истина;
//если Форма.
КонецЕсли;
КонецЕсли;
КонецПроцедуры


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск