Имя: Пароль:
1C
1С v8
ВыделенныеСтроки
0 КоньЛапчатый
 
26.04.13
09:59
Имеется значит таблица со списком документов. В этом списке выделяется n документов и нужно вытащить из табличной части каждого документа строки в другую табличную часть, при этом если есть одинаковые записи объединить их в одну, сложив кол-во.
сейчас имею следующее:
[код]
Для каждого ВыделеннаяСтрока Из Элементы.ДокументСписок.ВыделенныеСтроки Цикл
       Док = ВыделеннаяСтрока.Ссылка.ПолучитьОбъект();
               
       Для Каждого ТекущаяСтрока Из Док.Запасы Цикл
           Элементы.Запасы.ДобавитьСтроку(ТекущаяСтрока);
       КонецЦикла;
   КонецЦикла;
[/код]
и у меня ругается на ВыделеннаяСтрока.[b]Ссылка[/b], мол поле объекта не онаружено.
1 tttiger
 
26.04.13
10:01
А в таблице есть колонка "ссылка"?
2 butterbean
 
26.04.13
10:04
СтрокаСписка = ДокументСписок.НайтиПоИдентификатору(ВыделеннаяСтрока);
Док = СтрокаСписка.Ссылка...
3 КоньЛапчатый
 
26.04.13
10:05
(1) есть
4 КоньЛапчатый
 
26.04.13
10:06
(2) щас попробуем
5 tttiger
 
26.04.13
10:07
(3) Ну глянь при отладке чему равно "ВыделеннаяСтрока.Ссылка"
6 КоньЛапчатый
 
26.04.13
10:09
(2) глаголит что нет такого метода НайтиПоИдентификатору
7 КоньЛапчатый
 
26.04.13
10:09
(5) оно ни чему не равно. на этом месте ошибка вылазит.
8 tttiger
 
26.04.13
10:11
ну блин, поставь точку останова на этой строке, запусти, и при остановке выдели "ВыделеннаяСтрока.Ссылка" и нажми shift+F9
Отлаживать не умеем? :-)
9 tttiger
 
26.04.13
10:12
вообще меня интересует нет ли в этой колонке значения "Неопределено" или пустой ссылки. А вообще может просто тип колонки у тебя стоит строка или еще что.
10 butterbean
 
26.04.13
10:20
сорри за (2), это не для динамического списка
(0) ты это на сервере или на клиенте делаешь??
11 КоньЛапчатый
 
26.04.13
10:33
(8) умеем отлаживать) ставлю, доходит до строки и вылазит ошибка "поле объекта не онаружено". ничего не кажет по shift+F9.
(10) на клиенте.
Вобще это все делатся во внешней обработке. таблица со списком имеет ссылку на документ.
12 butterbean
 
26.04.13
10:44
(11) на клиенте нельзя обращаться к базе
тебе надо передать ВыделеннаяСтрока в серверную процедуру и там уже ВыделеннаяСтрока.ПолучитьОбъект() и т.д.
13 КоньЛапчатый
 
26.04.13
13:30
щас наверно спрошу дикую глупость >.<
(12) в общем пытаюсь сделать так:
Процедура Подбор(Команда)
   Массив = Новый Массив;
   Для каждого ВыделеннаяСтрока Из Элементы.ДокументСписок.ВыделенныеСтроки Цикл
       //Док = ВыделеннаяСтрока.Ссылка.ПолучитьОбъект();
       Массив = ВыделеннаяСтрока;
   КонецЦикла;
   
   неваляшка(Массив);
КонецПроцедуры

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


мне пишет

{Форма.Перепродажа.Форма(18)}: Итератор для значения не определен
   Для Каждого Элемент Из массив1 Цикл
14 КоньЛапчатый
 
26.04.13
14:46
предыдущая проблема решилась так:
Процедура Подбор(Команда)
   Массив = Новый Массив;
   Для каждого ВыделеннаяСтрока Из Элементы.ДокументСписок.ВыделенныеСтроки Цикл
       //Док = ВыделеннаяСтрока.Ссылка.ПолучитьОбъект();
       Массив = ВыделеннаяСтрока;
       неваляшка(ВыделеннаяСтрока);        
   КонецЦикла;
КонецПроцедуры


&НаСервере
процедура неваляшка(массив)
   Для каждого ТекущаяСтрока Из массив.Запасы Цикл
       Элементы.Запасы.ДобавитьСтроку();
       Элементы.Запасы.ТекущаяСтрока = ТекущаяСтрока;
   КонецЦикла;
КонецПроцедуры

но при этом выдает:
{Форма.Перепродажа.Форма(16)}: Ошибка при вызове метода контекста (ДобавитьСтроку)
       Элементы.Запасы.ДобавитьСтроку();
по причине:
Метод недоступен на сервере

если все из процедуры неваляшка поместить в подбор, то возвращаемся к проблеме из поста (0)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс