· В первом примере происходит создание нового элемента справочника сотрудники и заполняются 3 реквизита Фамилия, Имя и Отчество
· Во втором случае происходит взаимодействие с документом Заказ клиента, производится поиск конкретного документа по его номеру, заполняется дата и реквизит покупателя, Проведение, запись документа
рис 1ПрактикаСправочники – Номенклатура – пр кн м по Команды – добавить –
1) Имя: ИзменитьВидНоменклатуры_ОдиночныйРежим (в синониме (одиночный режим)) – г
руппа: … Командная панель формы. Важное – ок
Т
ип параметра команды - … СправочникСсылка – Номенклатура галочку поставить
Режим использования параметра: Одиночный
Изменяет данные: поставить галочку – закрыть Свойства
В Процедуре меняем ПараметрКоманды на НоменклатураСсылка рис 2
· Для начала нужно определить дерективу компеляции на сервере, то есть должны поставить знак, что эта функция будет работать на сервере
Дирек ctrl Q выбрать на сервере
Функ ctrl Q – выбрать Функция – Имя функции: ПолучитьСписокВидовНоменклатуры - ок –
возвращаемся на клиенте и пишем перед процедурой АСИНХ
· Если мы говорим о проверки, то это будет блок условие
Если ctrl Q – выбрать Если
· Определим ещё одну процедуру на сервере. Мы работаем с базой данных. И когда речь идёт об объектном взаимодействии данных, то не может быть никакого клиента поэтому:
Пишем Дирек ctrl Q – выбрать на Сервере
Пишем Проц ctrl Q – выбрать Процедура- имя процедуры: ИзменитьВидНоменклатуры – ок
- Обновляем - пользовательском режиме в Номенклатуре видим кнопку Изменить вид номенклатуры (одиночный режим) рис 9 -нажим на эту кнопку и открывается список значений Товар и услуга – выбираем услуга должен был измениться Вид номенклатуры, но не изменилось
Нажимаем F 5, чтобы изменить список рис 4
Изменить ВидНоменклатуры_ОдиночныйРежим сам КОД:
рис 3, 4&НаКлиенте
АСИНХ Процедура ОбработкаКоманды(НоменклатураСсылка, ПараметрыВыполненияКоманды)
СписокВариантов = ПолучитьСписокВидовНоменклатуры();
ВыбранныйВид = ЖДАТЬ СписокВариантов.ВыбратьЭлементАсинх("Выберите вид номенклатуры");
Если ВыбранныйВид <> Неопределено Тогда
ИзменитьВидНоменклатуры(НоменклатураСсылка, ВыбранныйВид.Значение);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСписокВидовНоменклатуры()
Список = Новый СписокЗначений;
Список.Добавить(Перечисления.ВидыНоменклатуры.Товар);
Список.Добавить(Перечисления.ВидыНоменклатуры.Услуга);
Возврат Список;
КонецФункции
&НаСервере
Процедура ИзменитьВидНоменклатуры(НоменклатураСсылка, ВыбранныйВид)
НоменклатураОбъект = НоменклатураСсылка.ПолучитьОбъект();
НоменклатураОбъект.ВидНоменклатуры = ВыбранныйВид;
НоменклатураОбъект.Записать();
КонецПроцедуры
Изменить ВидНоменклатуры_МножественныйРежим сам КОД:
рис 5В Конфигураторе кликаем по нашей команде
ИзменитьВидНоменклатуры_ОдиночныйРежим – открывается наш модуль
В Процедуре
НоменклатураСсылка меняем на
МассивСсылок, так же меняем в команде Если и в процедуре на (Сервере ИзменитьВидНоменклатуры)
И теперь нужно обработать весь этот массив следующим образом
Пишем Для ctrl Q – выбрать Для каждого – ок – Переменная пропустить - ок
В пользоват режиме выбираем Торговый учёт – Номенклатура – Товары – Чайники – нажмем на 1 чайник и на кнопку изменить вид номенклатуры (множественный режим) выбираем Услуга – справа ещё – обновить либо F 5
сам КОД&НаКлиенте
АСИНХ Процедура ОбработкаКоманды(МассивСсылок, ПараметрыВыполненияКоманды)
СписокВариантов = ПолучитьСписокВидовНоменклатуры();
ВыбранныйВид = ЖДАТЬ СписокВариантов.ВыбратьЭлементАсинх("Выберите вид номенклатуры");
Если ВыбранныйВид <> Неопределено Тогда
ИзменитьВидНоменклатуры(МассивСсылок, ВыбранныйВид.Значение);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСписокВидовНоменклатуры()
Список = Новый СписокЗначений;
Список.Добавить(Перечисления.ВидыНоменклатуры.Товар);
Список.Добавить(Перечисления.ВидыНоменклатуры.Услуга);
Возврат Список;
КонецФункции
&НаСервере
Процедура ИзменитьВидНоменклатуры(МассивСсылок, ВыбранныйВид)
Для каждого НоменклатураСсылка Из МассивСсылок Цикл
НоменклатураОбъект = НоменклатураСсылка.ПолучитьОбъект();
НоменклатураОбъект.ВидНоменклатуры = ВыбранныйВид;
НоменклатураОбъект.Записать();
КонецЦикла;
КонецПроцедуры