Как провести выбранные активизацией строк документы динамического списка программно с изменением реквизита документа? На данный момент код таков:
Выборка = Документы.ЗаказПокупателя.Выбрать(,,Элементы.Список.ТекущаяСтрока);
Пока Выборка.Следующий() Цикл
ОбъектДокумента = Выборка.ПолучитьОбъект();
Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="Выполнен6" Тогда
ОбъектДокумента.Заблокировать();
ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
ОбъектДокумента.Разблокировать();
Сообщить("Заказ отгружен успешно!");
Элементы.Список.Обновить();
ПоказатьПо теме из базы знаний
- Сложные запросы в динамическом списке или как не надо писать запросы для них
- Управление динамическими списками [Расширение] УТ11
- Как ограничить поля отбора в динамическом списке и ничего не сломать
- Дополнительные параметризуемые поля в динамических списках. Остатки и цены в списке номенклатуры
- Картинки в динамическом списке
Найденные решения
(5)
Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке
как обратиться только к выбранным строкам и провести доки только по выбранным строкам
Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке
&НаКлиенте
Процедура Я_Кнопка(Команда)
ВыделенныеСтроки = Элементы.ВашСписок.ВыделенныеСтроки;
//передаете управление с клиента на сервер
ПроведениеВыделенных(ВыделенныеСтроки);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПроведениеВыделенных(ВыделенныеСтроки)
Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
//тут ваша обработка проведения
КонецЦикла;
КонецПроцедуры
Показать
ПОЛУЧИЛОСЬ, ВСЁ РАБОТАЕТ, Благодаря (8) !!! Может кому пригодится код таков:
&НаКлиенте
Процедура ОтгрузитьЗаказы(Команда)
ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;
ОтгрузитьЗаказыСервер(ВыделенныеСтроки);
КонецПроцедуры
&НаСервере
//БезКонтекста
Функция ОтгрузитьЗаказыСервер(ВыделенныеСтроки)
Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
ОбъектДокумента = ВыдСтрока.ПолучитьОбъект();
Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="000000003" Тогда
ОбъектДокумента.Заблокировать();
ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
ОбъектДокумента.Разблокировать();
Сообщить("Заказ отгружен успешно!");
Элементы.Список.Обновить();
КонецЕсли
КонецЦикла;
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) 1.не правильно задан 3 параметр в выборке, текущая строка содержит ссылку на документ, а там должна быть структура.
Ваша Выборка всегда будет содержать один элемент, смысла в цикле нет. Или я что то не понял в Вашем списке в текущей строке.
Если Вы хотите несколько документов, то обращаться в списке нужно к выбранным строкам
Ваша Выборка всегда будет содержать один элемент, смысла в цикле нет. Или я что то не понял в Вашем списке в текущей строке.
Если Вы хотите несколько документов, то обращаться в списке нужно к выбранным строкам
(5)
Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке
как обратиться только к выбранным строкам и провести доки только по выбранным строкам
Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке
&НаКлиенте
Процедура Я_Кнопка(Команда)
ВыделенныеСтроки = Элементы.ВашСписок.ВыделенныеСтроки;
//передаете управление с клиента на сервер
ПроведениеВыделенных(ВыделенныеСтроки);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПроведениеВыделенных(ВыделенныеСтроки)
Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
//тут ваша обработка проведения
КонецЦикла;
КонецПроцедуры
Показать
(8) У меня получилось вот так:
Но похоже я сделал что то не так, потому что ничего не произошло, даже ошибки не было)))
&НаКлиенте
Процедура ОтгрузитьЗаказы(Команда)
ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;
//ПодключитьОбработчикОжидания("ОбработатьАктивизациюСтрокиСписка", 0.2, Истина);
ОтгрузитьЗаказыСервер(ВыделенныеСтроки);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОтгрузитьЗаказыСервер(ВыделенныеСтроки)
Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
ОбъектДокумента = ВыдСтрока.ПолучитьОбъект();
Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="Выполнен6" Тогда
ОбъектДокумента.Заблокировать();
ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
ОбъектДокумента.Разблокировать();
Сообщить("Заказ отгружен успешно!");
ВыделенныеСтроки.Список.Обновить();
КонецЕсли
КонецЦикла;
КонецПроцедуры
ПоказатьНо похоже я сделал что то не так, потому что ничего не произошло, даже ошибки не было)))
ПОЛУЧИЛОСЬ, ВСЁ РАБОТАЕТ, Благодаря (8) !!! Может кому пригодится код таков:
&НаКлиенте
Процедура ОтгрузитьЗаказы(Команда)
ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;
ОтгрузитьЗаказыСервер(ВыделенныеСтроки);
КонецПроцедуры
&НаСервере
//БезКонтекста
Функция ОтгрузитьЗаказыСервер(ВыделенныеСтроки)
Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
ОбъектДокумента = ВыдСтрока.ПолучитьОбъект();
Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="000000003" Тогда
ОбъектДокумента.Заблокировать();
ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
ОбъектДокумента.Разблокировать();
Сообщить("Заказ отгружен успешно!");
Элементы.Список.Обновить();
КонецЕсли
КонецЦикла;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот