Динамические списки

1. DENSKR 15 26.01.18 19:05 Сейчас в теме
Как провести выбранные активизацией строк документы динамического списка программно с изменением реквизита документа? На данный момент код таков:

Выборка = Документы.ЗаказПокупателя.Выбрать(,,Элементы.Список.ТекущаяСтрока);
	Пока Выборка.Следующий() Цикл 
		ОбъектДокумента = Выборка.ПолучитьОбъект();
	Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="Выполнен6" Тогда
		ОбъектДокумента.Заблокировать();
		ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
		ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
		ОбъектДокумента.Разблокировать();
		Сообщить("Заказ отгружен успешно!");
		Элементы.Список.Обновить();
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
8. AnnieCoder 30.01.18 19:06 Сейчас в теме +0.08 $m
(5)
как обратиться только к выбранным строкам и провести доки только по выбранным строкам

Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке
&НаКлиенте
Процедура Я_Кнопка(Команда)
ВыделенныеСтроки = Элементы.ВашСписок.ВыделенныеСтроки;
//передаете управление с клиента на сервер
ПроведениеВыделенных(ВыделенныеСтроки);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ПроведениеВыделенных(ВыделенныеСтроки)
Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
//тут ваша обработка проведения
КонецЦикла;
КонецПроцедуры
Показать
DENSKR; user705522_constantin_h; +2 Ответить
11. DENSKR 15 30.01.18 19:44 Сейчас в теме
ПОЛУЧИЛОСЬ, ВСЁ РАБОТАЕТ, Благодаря (8) !!! Может кому пригодится код таков:
&НаКлиенте
Процедура  ОтгрузитьЗаказы(Команда)
	ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;	
	ОтгрузитьЗаказыСервер(ВыделенныеСтроки);
	
КонецПроцедуры

&НаСервере 
//БезКонтекста
Функция ОтгрузитьЗаказыСервер(ВыделенныеСтроки)
	Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
		ОбъектДокумента = ВыдСтрока.ПолучитьОбъект();
	Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="000000003" Тогда
		ОбъектДокумента.Заблокировать();
		ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
		ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
		ОбъектДокумента.Разблокировать();
		Сообщить("Заказ отгружен успешно!");
		Элементы.Список.Обновить();
	КонецЕсли
		
КонецЦикла;
КонецФункции
Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 26.01.18 21:37 Сейчас в теме
3. DENSKR 15 27.01.18 07:22 Сейчас в теме
(2)Не так как нужно. Нужно проводить только те, которые при активизации строки выбраны
4. lefthander 27.01.18 19:55 Сейчас в теме
(3) 1.не правильно задан 3 параметр в выборке, текущая строка содержит ссылку на документ, а там должна быть структура.
Ваша Выборка всегда будет содержать один элемент, смысла в цикле нет. Или я что то не понял в Вашем списке в текущей строке.
Если Вы хотите несколько документов, то обращаться в списке нужно к выбранным строкам
5. DENSKR 15 30.01.18 17:30 Сейчас в теме
(4) Вы правильно поняли. А я не могу разобраться, как обратиться только к выбранным строкам и провести доки только по выбранным строкам.
6. Xershi 1474 30.01.18 18:34 Сейчас в теме
(5) копируешь код который показывает выделенные строки. Далее думаешь что делать через отладчик.
7. DENSKR 15 30.01.18 19:03 Сейчас в теме
(6)
код который показывает выделенные строки
Так вот. За это отвечает насколько я понимаю процедура "ПриАктивизацииСтроки" далее то отладчиком ловить ошибки? Или курить кучу книг про работу с динамическими списками?
8. AnnieCoder 30.01.18 19:06 Сейчас в теме +0.08 $m
(5)
как обратиться только к выбранным строкам и провести доки только по выбранным строкам

Тут нужна команда, которая позволит обработать выделенные строки. Пример на коленке
&НаКлиенте
Процедура Я_Кнопка(Команда)
ВыделенныеСтроки = Элементы.ВашСписок.ВыделенныеСтроки;
//передаете управление с клиента на сервер
ПроведениеВыделенных(ВыделенныеСтроки);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ПроведениеВыделенных(ВыделенныеСтроки)
Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
//тут ваша обработка проведения
КонецЦикла;
КонецПроцедуры
Показать
DENSKR; user705522_constantin_h; +2 Ответить
9. DENSKR 15 30.01.18 19:11 Сейчас в теме
(8)Сейчас попробую подобное наваять.
10. DENSKR 15 30.01.18 19:31 Сейчас в теме
(8) У меня получилось вот так:
&НаКлиенте
Процедура  ОтгрузитьЗаказы(Команда)
ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;	
	//ПодключитьОбработчикОжидания("ОбработатьАктивизациюСтрокиСписка", 0.2, Истина);
	ОтгрузитьЗаказыСервер(ВыделенныеСтроки);
	
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ОтгрузитьЗаказыСервер(ВыделенныеСтроки)
	Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
		ОбъектДокумента = ВыдСтрока.ПолучитьОбъект();
	Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="Выполнен6" Тогда
		ОбъектДокумента.Заблокировать();
		ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
		ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
		ОбъектДокумента.Разблокировать();
		Сообщить("Заказ отгружен успешно!");
		ВыделенныеСтроки.Список.Обновить();
	КонецЕсли
		
КонецЦикла;
КонецПроцедуры
Показать

Но похоже я сделал что то не так, потому что ничего не произошло, даже ошибки не было)))
11. DENSKR 15 30.01.18 19:44 Сейчас в теме
ПОЛУЧИЛОСЬ, ВСЁ РАБОТАЕТ, Благодаря (8) !!! Может кому пригодится код таков:
&НаКлиенте
Процедура  ОтгрузитьЗаказы(Команда)
	ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;	
	ОтгрузитьЗаказыСервер(ВыделенныеСтроки);
	
КонецПроцедуры

&НаСервере 
//БезКонтекста
Функция ОтгрузитьЗаказыСервер(ВыделенныеСтроки)
	Для каждого ВыдСтрока Из ВыделенныеСтроки Цикл
		ОбъектДокумента = ВыдСтрока.ПолучитьОбъект();
	Если НЕ ОбъектДокумента.ПометкаУдаления и ОбъектДокумента.СостояниеЗаказа.Код="000000003" Тогда
		ОбъектДокумента.Заблокировать();
		ОбъектДокумента.СостояниеЗаказа = Справочники.СостоянияЗаказовПокупателей.НайтиПоКоду("Выполнен7");
		ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
		ОбъектДокумента.Разблокировать();
		Сообщить("Заказ отгружен успешно!");
		Элементы.Список.Обновить();
	КонецЕсли
		
КонецЦикла;
КонецФункции
Показать
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)