Имя: Пароль:
1C
1С v8
заполнение табличного поля
0 Orthodoxxx_
Reprobate
 
27.02.12
15:27
в таблицу не вписывается номенклатура, помеченная на удаление (при нажатии кнопки загрузить). подскажите что не правильно в коде


Процедура КнопкаВыполнитьНажатие(Кнопка)
   ТекстЗапроса =
   "ВЫБРАТЬ
   |    Номенклатура.Ссылка КАК Номенклатура
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.Ссылка В ИЕРАРХИИ(&ГруппаНеИспользовать)";
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("ГруппаНеИспользовать", ГруппаНоменклатуры);
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
   ЭлементыФормы.Индикатор1.МаксимальноеЗначение = РезультатЗапроса.Количество();
   Обработано = 0;
   Для Каждого стрНоменклатура Из РезультатЗапроса Цикл
       НоменклатураОбъект = стрНоменклатура.Номенклатура.ПолучитьОбъект();
       Если СтрЧислоВхождений(НоменклатураОбъект.Наименование, "!!!НЕ ИСПОЛЬЗОВАТЬ!!! ") = 0
           И НоменклатураОбъект.Ссылка <> ГруппаНоменклатуры Тогда
           НоменклатураОбъект.Наименование = "!!!НЕ ИСПОЛЬЗОВАТЬ!!! " +  НоменклатураОбъект.Наименование;
           НоменклатураОбъект.Записать();
       КонецЕсли;
       Обработано = Обработано + 1;
       ЭлементыФормы.Индикатор1.Значение = Обработано;
   КонецЦикла;
КонецПроцедуры

Процедура ПриОткрытии()
   ГруппаНоменклатуры = Справочники.Номенклатура.НайтиПоКоду("М4.00868   ");
КонецПроцедуры

Процедура ОсновныеДействияФормыкнПереместить(Кнопка)
   ТекстЗапроса =
   "ВЫБРАТЬ
   |    Номенклатура.Ссылка КАК Номенклатура
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.ПометкаУдаления = ИСТИНА
   |    И (НЕ Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаУдаленных))
   |    И Номенклатура.ЭтоГруппа = ЛОЖЬ
   |
   |СГРУППИРОВАТЬ ПО
   |    Номенклатура.Ссылка";
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("ГруппаУдаленных", ГруппаНоменклатуры);
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
   ЭлементыФормы.Индикатор1.МаксимальноеЗначение = РезультатЗапроса.Количество();
   Обработано = 0;
   Для Каждого стрНоменклатура Из РезультатЗапроса Цикл
       НоменклатураОбъект                = стрНоменклатура.Номенклатура.ПолучитьОбъект();
       НоменклатураОбъект.Комментарий  = "Перенесено автоматически из группы: " + НоменклатураОбъект.Родитель;
       НоменклатураОбъект.Родитель    = ГруппаНоменклатуры;
       НоменклатураОбъект.Записать();
       Обработано = Обработано + 1;
       ЭлементыФормы.Индикатор1.Значение = Обработано;
   КонецЦикла;
КонецПроцедуры

Процедура ОсновныеДействияФормыЗагрузить(Кнопка)
   // Вставить содержимое обработчика.
   ТекстЗапроса =
   "ВЫБРАТЬ
   |    Номенклатура.Ссылка КАК Номенклатура
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.ПометкаУдаления = ИСТИНА
   |    И (НЕ Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаУдаленных))
   |    И Номенклатура.ЭтоГруппа = ЛОЖЬ
   |
   |СГРУППИРОВАТЬ ПО
   |    Номенклатура.Ссылка";
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("ГруппаУдаленных", ГруппаНоменклатуры);
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
   ЭлементыФормы.Индикатор1.МаксимальноеЗначение = РезультатЗапроса.Количество();
   Обработано = 0;
   Для Каждого стрНоменклатура Из РезультатЗапроса Цикл
       НоменклатураОбъект                = стрНоменклатура.Номенклатура.ПолучитьОбъект();
       НоменклатураОбъект.Комментарий  = "Перенесено автоматически из группы: " + НоменклатураОбъект.Родитель;
       НоменклатураОбъект.Родитель    = ГруппаНоменклатуры;
       НоменклатураОбъект.Записать();
       Обработано = Обработано + 1;
       ЭлементыФормы.Индикатор1.Значение = Обработано;
       Результат = Запрос.Выполнить().Выгрузить();
       ТабличноеПоле.Загрузить();
       ТабличноеПоле = Запрос.Выполнить().Выгрузить();
       ЭлементыФормы.Результат.СоздатьКолонки();
   КонецЦикла;
   
КонецПроцедуры
1 mikecool
 
27.02.12
15:28
наверное здесь  И (НЕ Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаУдаленных))
2 Alex S D
 
27.02.12
15:31
и нафиг запрос в цикле гоняешь, когда  есть результат еще до цикла??
3 Orthodoxxx_
Reprobate
 
27.02.12
16:01
выдает такую ошибку


{Форма.Форма.Форма(77)}: Поле объекта недоступно для записи (РезультатЗапроса)
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
4 Orthodoxxx_
Reprobate
 
27.02.12
17:24
разобрался, теперь работает



Процедура КнопкаВыполнитьНажатие(Кнопка)
   ТекстЗапроса =
   "ВЫБРАТЬ
   |    Номенклатура.Ссылка КАК Номенклатура
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.Ссылка В ИЕРАРХИИ(&ГруппаНеИспользовать)";
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("ГруппаНеИспользовать", ГруппаНоменклатуры);
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
   ЭлементыФормы.Индикатор1.МаксимальноеЗначение = РезультатЗапроса.Количество();
   Обработано = 0;
   Для Каждого стрНоменклатура Из РезультатЗапроса Цикл
       НоменклатураОбъект = стрНоменклатура.Номенклатура.ПолучитьОбъект();
       Если СтрЧислоВхождений(НоменклатураОбъект.Наименование, "!!!НЕ ИСПОЛЬЗОВАТЬ!!! ") = 0
           И НоменклатураОбъект.Ссылка <> ГруппаНоменклатуры Тогда
           НоменклатураОбъект.Наименование = "!!!НЕ ИСПОЛЬЗОВАТЬ!!! " +  НоменклатураОбъект.Наименование;
           НоменклатураОбъект.Записать();
       КонецЕсли;
       Обработано = Обработано + 1;
       ЭлементыФормы.Индикатор1.Значение = Обработано;
   КонецЦикла;
КонецПроцедуры

Процедура ПриОткрытии()
   ГруппаНоменклатуры = Справочники.Номенклатура.НайтиПоКоду("М4.00868   ");
КонецПроцедуры

Процедура ОсновныеДействияФормыкнПереместить(Кнопка)
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("ГруппаУдаленных", ГруппаНоменклатуры);
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
   ЭлементыФормы.Индикатор1.МаксимальноеЗначение = РезультатЗапроса.Количество();
   Обработано = 0;
   Для Каждого стрНоменклатура Из РезультатЗапроса Цикл
       НоменклатураОбъект                = стрНоменклатура.Номенклатура.ПолучитьОбъект();
       НоменклатураОбъект.Комментарий  = "Перенесено автоматически из группы: " + НоменклатураОбъект.Родитель;
       НоменклатураОбъект.Родитель    = ГруппаНоменклатуры;
       НоменклатураОбъект.Записать();
       Обработано = Обработано + 1;
       ЭлементыФормы.Индикатор1.Значение = Обработано;
   КонецЦикла;
КонецПроцедуры

Процедура ОсновныеДействияФормыЗагрузить(Кнопка)
   // Вставить содержимое обработчика.
   ТекстЗапроса =
   "ВЫБРАТЬ
   |    Номенклатура.Ссылка КАК Номенклатура
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |    Номенклатура.ПометкаУдаления = ИСТИНА
   |    И (НЕ Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаУдаленных))
   |    И Номенклатура.ЭтоГруппа = ЛОЖЬ
   |
   |СГРУППИРОВАТЬ ПО
   |    Номенклатура.Ссылка";
   Запрос = Новый Запрос(ТекстЗапроса);
   Запрос.УстановитьПараметр("ГруппаУдаленных", ГруппаНоменклатуры);
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   ТабличнаяЧасть1.Загрузить(РезультатЗапроса);
   ЭлементыФормы.Индикатор1.МинимальноеЗначение = 0;
   ЭлементыФормы.Индикатор1.МаксимальноеЗначение = РезультатЗапроса.Количество();
   Обработано = 0;
   
КонецПроцедуры