Имя: Пароль:
1C
1С v8
Удалить строки табличной части
0 iQwerty
 
07.07.13
15:41
конфа КА.как можно удалить строки, отобранные запросом, из табличной части документа?
1 Нуф-Нуф
 
07.07.13
15:45
а строки отобранные запросом - это что?
2 Нуф-Нуф
 
07.07.13
15:45
СтрокиОтобранныеЗапросом = Новый СтрокиОтобранныеЗапросом?
3 iQwerty
 
07.07.13
15:46
(1) =) интересный вопрос) запрос в общем то из документа отбирает конкретные строки табличной части
4 iQwerty
 
07.07.13
15:48
Запрос2.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ПоступлениеТоваровУслуг.Дата,
|    ПоступлениеТоваровУслуг.Организация,
|    ПоступлениеТоваровУслуг.Ответственный,
|    ПоступлениеТоваровУслуг.Контрагент.Код,
|    ПоступлениеТоваровУслуг.Номер,
|    ПоступлениеТоваровУслуг.Контрагент,
|    ПоступлениеТоваровУслугТовары.Номенклатура,
|    ПоступлениеТоваровУслугТовары.Склад,
|    ПоступлениеТоваровУслугТовары.Количество,
|    ПоступлениеТоваровУслугТовары.Сумма,
|    ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры,
|    ПоступлениеТоваровУслуг.Ссылка
|ИЗ
|    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
|            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|            ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслуг.Ссылка
|        ПО ЗначенияСвойствОбъектов.Объект = ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры
|ГДЕ
|    ЗначенияСвойствОбъектов.Свойство В (&Гарантия, &Бесплатная, &Доукомплектация)
|    И ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачалаПериода И &ДатаКонецПериода
|    И ЗначенияСвойствОбъектов.Значение В (&Гарантийная, &Бесплатная1, &Доукомплектация1)";
5 Нуф-Нуф
 
07.07.13
15:50
жесть же...
6 Нуф-Нуф
 
07.07.13
15:51
по номеру строки короче
7 iQwerty
 
07.07.13
15:53
можно вообще удалить строки отобранные запросом или надо как то по другому их отбирать?
8 zippygrill
 
07.07.13
15:54
никогда не пиши так.
9 zippygrill
 
07.07.13
15:55
получаешь документОбъект, потом через.Товары удаляешь нужные строки. записываешь документ.
10 iQwerty
 
07.07.13
16:25
я изменил запрос и выбираю только те строки, которые мне нужны , то есть хочу не удалять строки а занаово заполнить таблицу значений
   Запрос2 = Новый Запрос;    

Запрос2.УстановитьПараметр("ДатаНачалаПериода", началодня(ДатаНачалаПериода));
Запрос2.УстановитьПараметр("ДатаКонецПериода", Конецдня(ДатаКонецПериода));
    Запрос2.УстановитьПараметр("Гарантия",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия"));
Запрос2.УстановитьПараметр("Бесплатная",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доукомплектация"));
Запрос2.УстановитьПараметр("Гарантийная", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Гарантийная"));
Запрос2.УстановитьПараметр("Бесплатная1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Доукомплектация"));

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

в последней строке кода(Поле объекта не обнаружено (товары)
Документы.ГТДИмпорт.товары.Загрузить(Запрос2.Выполнить().Выгрузить());
)
11 iQwerty
 
07.07.13
16:27
упс упс упс, опечатка в запросе
12 iQwerty
 
07.07.13
16:28
Запрос2 = Новый Запрос;    

Запрос2.УстановитьПараметр("ДатаНачалаПериода", началодня(ДатаНачалаПериода));
Запрос2.УстановитьПараметр("ДатаКонецПериода", Конецдня(ДатаКонецПериода));
    Запрос2.УстановитьПараметр("Гарантия",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия"));
Запрос2.УстановитьПараметр("Бесплатная",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доукомплектация"));
Запрос2.УстановитьПараметр("Гарантийная", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Гарантийная"));
Запрос2.УстановитьПараметр("Бесплатная1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Доукомплектация"));

Запрос2.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ГТДИмпорт.Дата,
|    ГТДИмпорт.Организация,
|    ГТДИмпорт.Ответственный,
|    ГТДИмпорт.Контрагент.Код,
|    ГТДИмпорт.Номер,
|    ГТДИмпорт.Контрагент,
|    ГТДИмпортТовары.Номенклатура,
|    ГТДИмпортТовары.Количество,
|    ГТДИмпортТовары.СуммаНДС,
|    ГТДИмпортТовары.СуммаПошлины,
|    ГТДИмпортТовары.ХарактеристикаНоменклатуры
|ИЗ
|    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт.Товары КАК ГТДИмпортТовары
|            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт КАК ГТДИмпорт
|            ПО ГТДИмпортТовары.Ссылка = ГТДИмпорт.Ссылка
|        ПО ЗначенияСвойствОбъектов.Объект = ГТДИмпортТовары.ХарактеристикаНоменклатуры
|ГДЕ
|    ГТДИмпортТовары.Ссылка.Дата МЕЖДУ &ДатаНачалаПериода И &ДатаКонецПериода
|    И ЗначенияСвойствОбъектов.Свойство <> &Гарантия
|    И ЗначенияСвойствОбъектов.Свойство <> &Бесплатная
|    И ЗначенияСвойствОбъектов.Свойство <> &Доукомплектация
|    И ЗначенияСвойствОбъектов.Значение = &Гарантийная
|    И ЗначенияСвойствОбъектов.Значение = &Бесплатная1
|    И ЗначенияСвойствОбъектов.Значение = &Доукомплектация1";
РезультатЗапроса = Запрос2.Выполнить();
Выборка=РезультатЗапроса.Выбрать();
Документы.ГТДИмпорт.товары.Загрузить(Запрос2.Выполнить().Выгрузить());
13 iQwerty
 
07.07.13
16:29
но проблема остается актуальной, вроде так можно заполнить ТЗ документа ГТД по импорту
Документы.ГТДИмпорт.товары.Загрузить(Запрос2.Выполнить().Выгрузить());
14 iQwerty
 
07.07.13
16:29
но говоритъ
(Поле объекта не обнаружено (товары)
Документы.ГТДИмпорт.товары.Загрузить(Запрос2.Выполнить().Выгрузить());
15 iQwerty
 
07.07.13
16:33
(13) не ТЗ а ТЧ
16 ПротоМФ
 
07.07.13
16:34
мне кажется странным это:
...
|    ГТДИмпорт.Номер,
|    ГТДИмпорт.Контрагент,
|    ГТДИмпортТовары.Номенклатура,
|    ГТДИмпортТовары.Количество,
...
17 iQwerty
 
07.07.13
16:35
(16) не столь важно
18 ПротоМФ
 
07.07.13
16:36
отбой, не увидел
19 ПротоМФ
 
07.07.13
16:37
посмотри колонки в отладчике Запрос2.Выполнить().Выгрузить()
20 ale-sarin
 
07.07.13
16:37
(14) Пойми же, что таб часть можно загрузить в конкретный экземпляр документа. А ты куда пытаешься загрузить?
21 iQwerty
 
07.07.13
16:41
ой точно (20)
22 iQwerty
 
07.07.13
16:58
почему то не что не происходит
   Запрос2 = Новый Запрос;    

Запрос2.УстановитьПараметр("ДатаНачалаПериода", началодня(ДатаНачалаПериода));
Запрос2.УстановитьПараметр("ДатаКонецПериода", Конецдня(ДатаКонецПериода));
    Запрос2.УстановитьПараметр("Гарантия",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия"));
Запрос2.УстановитьПараметр("Бесплатная",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доукомплектация"));
Запрос2.УстановитьПараметр("Гарантийная", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Гарантийная"));
Запрос2.УстановитьПараметр("Бесплатная1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Доукомплектация"));

Запрос2.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ГТДИмпорт.Дата,
|    ГТДИмпорт.Организация,
|    ГТДИмпорт.Ответственный,
|    ГТДИмпорт.Контрагент.Код,
|    ГТДИмпорт.Номер,
|    ГТДИмпорт.Контрагент,
|    ГТДИмпортТовары.Ссылка,
|    ГТДИмпортТовары.НомерСтроки,
|    ГТДИмпортТовары.НомерРаздела,
|    ГТДИмпортТовары.Номенклатура,
|    ГТДИмпортТовары.КоличествоМест,
|    ГТДИмпортТовары.ЕдиницаИзмеренияМест,
|    ГТДИмпортТовары.ЕдиницаИзмерения,
|    ГТДИмпортТовары.Коэффициент,
|    ГТДИмпортТовары.Количество,
|    ГТДИмпортТовары.ФактурнаяСтоимость,
|    ГТДИмпортТовары.СуммаПошлины,
|    ГТДИмпортТовары.ХарактеристикаНоменклатуры,
|    ГТДИмпортТовары.СерияНоменклатуры,
|    ГТДИмпортТовары.ЗаказПокупателя,
|    ГТДИмпортТовары.СуммаНДС,
|    ГТДИмпортТовары.ДокументПартии,
|    ГТДИмпортТовары.СчетУчетаБУ,
|    ГТДИмпортТовары.СчетУчетаНДС,
|    ГТДИмпортТовары.СчетУчетаНУ,
|    ГТДИмпортТовары.СтатьяЗатратНУ,
|    ГТДИмпортТовары.ПодразделениеОрганизации,
|    ГТДИмпортТовары.СтатусПартии,
|    ГТДИмпортТовары.СтавкаПошлиныТов
|ИЗ
|    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт.Товары КАК ГТДИмпортТовары
|            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт КАК ГТДИмпорт
|            ПО ГТДИмпортТовары.Ссылка = ГТДИмпорт.Ссылка
|        ПО ЗначенияСвойствОбъектов.Объект = ГТДИмпортТовары.ХарактеристикаНоменклатуры
|ГДЕ
|    ГТДИмпортТовары.Ссылка.Дата МЕЖДУ &ДатаНачалаПериода И &ДатаКонецПериода
|    И ЗначенияСвойствОбъектов.Свойство <> &Гарантия
|    И ЗначенияСвойствОбъектов.Свойство <> &Бесплатная
|    И ЗначенияСвойствОбъектов.Свойство <> &Доукомплектация
|    И ЗначенияСвойствОбъектов.Значение <> &Гарантийная
|    И ЗначенияСвойствОбъектов.Значение <> &Бесплатная1
|    И ЗначенияСвойствОбъектов.Значение <> &Доукомплектация1";
//РезультатЗапроса = Запрос2.Выполнить();
//Выборка=РезультатЗапроса.Выбрать();
Документы.ГТДИмпорт.НайтиПоНомеру("ТК000000009").Товары.Загрузить(Запрос2.Выполнить().Выгрузить());
23 iQwerty
 
07.07.13
17:13
вот запрос обработка должна удалить все строки из документа, где характеричтика номенклатуры= гарантийная, бесплатная, итд, но документ не меняется

       Запрос2 = Новый Запрос;    

Запрос2.УстановитьПараметр("ДатаНачалаПериода", началодня(ДатаНачалаПериода));
Запрос2.УстановитьПараметр("ДатаКонецПериода", Конецдня(ДатаКонецПериода));
    Запрос2.УстановитьПараметр("Гарантия",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Гарантия"));
Запрос2.УстановитьПараметр("Бесплатная",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация",ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Доукомплектация"));
Запрос2.УстановитьПараметр("Гарантийная", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Гарантийная"));
Запрос2.УстановитьПараметр("Бесплатная1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Бесплатная"));
Запрос2.УстановитьПараметр("Доукомплектация1", Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию("Доукомплектация"));

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



документ должен удалить все
24 zippygrill
 
07.07.13
17:17
Записать кто будет документ?
25 zippygrill
 
07.07.13
17:18
Пушкин?
26 ale-sarin
 
07.07.13
17:19
(23) И вообще НайтиПоНомеру - будет ссылка. Ссылку изменять нельзя. Надо получить объект и сделать (24).
27 iQwerty
 
07.07.13
17:20
(24) ой, точно. (26) а что изменять можно?
28 ale-sarin
 
07.07.13
17:22
(27) Объект.
Хватит тусить на форуме. В типовых все есть. И про ссылку, и про объект, и про запись и вообще - вся хрень там есть.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс