Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 окт 2025, 00:57

вывести колонку по значению Истина

Автор sali, 09 окт 2025, 08:25

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

antoneus


sali

antoneus, извиняюсь , не форма процедуры , а это форма узла плана обмена

sali

переписал на это
Набор = РегистрыСведений.ЭДОН_ПараметрыРегламентныхЗаданий.СоздатьНаборЗаписей();
Задание = Набор.ПолучитьРегламентноеЗадание(ТекущийОбъект);
и заработало , потому что в форме регистра сведений ТекущийОбъект — это экземпляр записи регистра (объект типа РегистрСведенийОбъект), а не менеджер и не набор записей.

sali

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

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

или не спрашивать тупых вопросов и сделать новое поле с наименованием по-которому пользователь и будет видеть всё?

antoneus

Список выбора и режим выбора из списка.

sali

antoneus, это самому прописывать. я про то что бы пользователь сам выбирал как называть регламент
сейчас у меня просто два поля, 1 - значение перечисления , для выбора регламента ,  а 2 - полное наименование - чтобы пользователь не запутался какой регламент на какое торговое оборудование (ТО) работает.

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

antoneus

Ну пусть сам выбирает, то, что он выбрал - запоминаем куда-нибудь, потом оттуда заполняем представления списка выбора.

sali

antoneus, АГА ЯСНО
а что делать когда надо проверить поля неограниченной длины . перед записью проверяю есть ли такой регламент с таким наименованием, торговым оборудованием, сохраненными настройками (какой товар выгружать, остатки не остатки, цены, вид цены , какого контрагента), такая функция идет
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

ЗаписьОбъект = ПроверитьЗаполненостьРегламента(ТекущийОбъект);

Если ЗначениеЗаполнено(ЗаписьОбъект) и ЗаписьОбъект <> Неопределено Тогда

Сообщить("Уже существует настройка с таким именем. Сохранение невозможно.");
Отказ = Истина;
Возврат;

КонецЕсли;
.....
КонецПроцедуры

&НаСервере
Функция ПроверитьЗаполненостьРегламента(ТекущийОбъект) 

Запрос = Новый Запрос("ВЫБРАТЬ
| ЭДОН_ПараметрыРегламентныхЗаданий.ПолноеНаименование КАК ПолноеНаименование,
| ЭДОН_ПараметрыРегламентныхЗаданий.ТорговоеОборудование КАК ТорговоеОборудование,
| ЭДОН_ПараметрыРегламентныхЗаданий.СохраненныеНастройки КАК СохраненныеНастройки
|ИЗ
| РегистрСведений.ЭДОН_ПараметрыРегламентныхЗаданий КАК ЭДОН_ПараметрыРегламентныхЗаданий
|ГДЕ
| ЭДОН_ПараметрыРегламентныхЗаданий.ТорговоеОборудование = &ТорговоеОборудование
| И ЭДОН_ПараметрыРегламентныхЗаданий.ПолноеНаименование = &ПолноеНаименование
| И ЭДОН_ПараметрыРегламентныхЗаданий.СохраненныеНастройки = &СохраненныеНастройки");

Запрос.УстановитьПараметр("ТорговоеОборудование", ТекущийОбъект.ТорговоеОборудование);
Запрос.УстановитьПараметр("ПолноеНаименование", ТекущийОбъект.ПолноеНаименование);
Запрос.УстановитьПараметр("СохраненныеНастройки", ТекущийОбъект.СохраненныеНастройки); //жалуется на это

РезультатЗапроса = Запрос.Выполнить();
ВыборкаЗапроса = РезультатЗапроса.Выбрать();
Пока ВыборкаЗапроса.Следующий() Цикл 
Возврат ВыборкаЗапроса.ПолноеНаименование;
КонецЦикла;

КонецФункции

sali

в плане обмена сравнение идет по наименованию и ссылке, но ссылки в регистре сведений нет, решил через настройки , а на настройки жалуется
//план обмена
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Если ЗначениеЗаполнено(ПланыОбмена.Б_ОбменССайтом.НайтиПоНаименованию(ТекущийОбъект.Наименование,Истина)) И НЕ ЗначениеЗаполнено(ТекущийОбъект.Ссылка) тогда

Сообщить("Уже существует настройка с таким именем. Сохранение невозможно.");
Отказ = Истина;
Возврат;

КонецЕсли;

antoneus

Делать то же, что и всегда - выразить как строка(1000), например.

Теги:

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

Рейтинг@Mail.ru

Поиск