Имя: Пароль:
1C
1С v8
1С8.2 Вопрос:чтение/запись в нескольких именован.ячейках ПоляТабличногоДокумента
0 olmi
 
01.09.14
23:49
Прошу прощения за новую тему - старая закрылась для дозаписи почему-то.
Задача: в отчете по остаткам на складе отметить нужные товары и по кнопке сформировать документ ПеремещениеТоваров с этого склада.
Данные по товару хранятся в расшифровке, структурой.
Отчет выведен в ПолеТабличногоДокумента.
Пока могу создать документ только по 1 строке, просто обработкой расшифровки, в 8.2 работаю недавно.
Добавила колонку Пометка,в которой при выделении хочу ставить или снимать галочку (можно и просто в порядковом номере цвет фона менять, наверно). Расшифровку вставила во все ячейки, т.к. пока не умею на всю строку ее распространять.
Пробовала так:

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
  СтандартнаяОбработка = Ложь;
      Если СокрЛП(Элемент.Области.Пометка.Текст)="" Тогда
          Элемент.Области.Пометка.Текст="V";
      Иначе
          Элемент.Области.Пометка.Текст="";
      КонецЕсли;
КонецПроцедуры
- галочка записывается в последнюю ячейку в этой колонке таблицы.
Как выбрать текущую, выделенную?
Вытащить отсюда расшифровку по строке? Но как перебрать строки таблицы с галочкой в ПолеТабличногоДокумента для заполнения строк по нескольким товарам в док.ПеремещениеТоваров? По кнопке, конечно.
1 Галахад
 
гуру
02.09.14
05:05
Примерно так:

    ТабДок = ЭлементыФормы.ПолеТабличногоДокументаРезультат;
    
    ИмяКолонкиНоменклатура = ИмяКолонкиПоЗаголовку(ТабДок, "Номенклатура");
    ИмяКолонкиЗаказ = ИмяКолонкиПоЗаголовку(ТабДок, "Заказ");

    СоставЗаказа = Новый ТаблицаЗначений;
    СоставЗаказа.Колонки.Добавить("Номенклатура");
    СоставЗаказа.Колонки.Добавить("Количество");
    
    
    Для Сч = 2 По Результат.Количество() + 1 Цикл
        
        Количество = ТабДок.Область("R" + Сч + ИмяКолонкиЗаказ).Текст;
        Номенклатура = ТабДок.Область("R" + Сч + ИмяКолонкиНоменклатура).Расшифровка;
        
        Если Количество = "" Тогда
            Продолжить;
        КонецЕсли;
        
        СтрокаСоставЗаказа = СоставЗаказа.Добавить();
        СтрокаСоставЗаказа.Номенклатура = Номенклатура;
        СтрокаСоставЗаказа.Количество = Количество;
        
    КонецЦикла;    
    
    СформироватьЗаказ(СоставЗаказа);
2 Галахад
 
гуру
02.09.14
05:06
Функция ИмяКолонкиПоЗаголовку(ТабДок, КолонкаЗаголовок)
    
    ТекущаяОбласть = Неопределено;
    ТекущаяОбласть = ТабДок.НайтиТекст(КолонкаЗаголовок, ТекущаяОбласть, ТабДок.Область(), Истина, Истина, Истина, Ложь);
    
    Позиция = Найти(ТекущаяОбласть.Имя, "C");
    ИмяКолонки = Сред(ТекущаяОбласть.Имя, Позиция);
    
    Возврат ИмяКолонки;
    
КонецФункции
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн