Ребят плис создаю таблицу значений колонки меняются из запроса ок я их создаю в цикле как к ним патом обратиться также в цикле и записать туда информацию
Ребят плис создаю таблицу значений колонки меняются из запроса ок я их создаю в цикле
как потом к нним обратиться уже при записи строки сделал так же в цикле так он ругается
Ругается на
а это весь код таблицы значения
КАК ПРАВИЛЬНО СДЕЛАТЬ
Для каждого СтрТаблицаТипЦен Из ТаблицаТипЦен Цикл
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры"));
ТабЗнач.Колонки.Добавить(Строка(СтрТаблицаТипЦен.ТипЦен) + "ЕдИзм");
КонецЦикла;
как потом к нним обратиться уже при записи строки сделал так же в цикле так он ругается
Для каждого СтрТаблицаТипЦен Из ТаблицаТипЦен Цикл
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ТипыЦенНоменклатуры.ПорядокОкругления,
| ТипыЦенНоменклатуры.ОкруглятьВБольшуюСторону,
| ЦеныНоменклатурыСрезПоследних.ТипЦен,
| ЦеныНоменклатурыСрезПоследних.Валюта
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТипыЦенНоменклатуры КАК ТипыЦенНоменклатуры
| ПО ЦеныНоменклатурыСрезПоследних.ТипЦен = ТипыЦенНоменклатуры.Ссылка
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура
| И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";
Запрос.УстановитьПараметр("Дата",КонецДня(ДатаПрайса));
Запрос.УстановитьПараметр("Номенклатура",Выборка.Номенклатура);
Запрос.УстановитьПараметр("ТипЦен",СтрТаблицаТипЦен.ТипЦен);
ВыборкаТипЦен = Запрос.Выполнить().Выбрать();
Если ВыборкаТипЦен.Следующий() Тогда
СтрВалюта = ?(мЕстьВалюта, " " + ВыборкаТипЦен.Валюта, "");
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен] = ОбщегоНазначения.ФорматСумм(Ценообразование.ОкруглитьЦену(ВыборкаТипЦен.Цена, ВыборкаТипЦен.ПорядокОкругления, ВыборкаТипЦен.ОкруглятьВБольшуюСторону)) + СтрВалюта;
Иначе
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен] = "";
КонецЕсли;
Если мЕстьЕдиница Тогда
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен + "ЕдИзм"] = ВыборкаТипЦен.ЕдиницаИзмерения;
КонецЕсли;
КонецЦикла;
ПоказатьРугается на
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен]
Получение элемента по индексу для значения не определено
а это весь код таблицы значения
ТабЗнач = Новый ТаблицаЗначений;
ТабЗнач.Колонки.Добавить("АртикулКартинки");
ТабЗнач.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТабЗнач.Колонки.Добавить("НоменклатураПредставление");
ТабЗнач.Колонки.Добавить("НаименованиеТовар");
ТабЗнач.Колонки.Добавить("Ткань");
ТабЗнач.Колонки.Добавить("Цвет");
ТабЗнач.Колонки.Добавить("Уровень");
ТабЗнач.Колонки.Добавить("Группировка");
ТабЗнач.Колонки.Добавить("ТипЗаписи",Новый ОписаниеТипов("ТипЗаписиЗапроса"));
ТабЗнач.Колонки.Добавить("Родитель");
ТабЗнач.Колонки.Добавить("ЭтоГруппа");
ТабЗнач.Колонки.Добавить("ГруппироватьПО");
ТабЗнач.Колонки.Добавить("НетХарактеристик",Новый ОписаниеТипов("Булево"));
ТабЗнач.Колонки.Добавить("ЦеноваяГруппа",Новый ОписаниеТипов("СправочникСсылка.ЦеновыеГруппы"));
Для каждого СтрТаблицаТипЦен Из ТаблицаТипЦен Цикл
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры"));
ТабЗнач.Колонки.Добавить(Строка(СтрТаблицаТипЦен.ТипЦен) + "ЕдИзм");
КонецЦикла;
Сч = 1;
Пока ВыборкаТЗ.Следующий() Цикл
СтрокаТаб = ТабЗнач.Добавить();
СтрокаТаб.Родитель = ВыборкаТЗ.Номенклатура.Родитель;
СтрокаТаб.ЭтоГруппа = ВыборкаТЗ.Номенклатура.ЭтоГруппа;
СтрокаТаб.Номенклатура = ВыборкаТЗ.Номенклатура;
СтрокаТаб.НоменклатураПредставление = ВыборкаТЗ.НоменклатураПредставление;
СтрокаТаб.НетХарактеристик = ВыборкаТЗ.НетХарактеристик;
СтрокаТаб.ЦеноваяГруппа = ВыборкаТЗ.ЦеноваяГруппа;
Если НЕ ВыборкаТЗ.Номенклатура.ЭтоГруппа Тогда
Наименование = ВыборкаТЗ.Номенклатура.Наименование;
ДлинаДоСимвола = Найти(Наименование," р ")+ 2;
СтрДлина = СтрДлина(Наименование);
СтрокаТаб.НаименованиеТовар = ?(ДлинаДоСимвола<>0,Лев(Наименование,ДлинаДоСимвола),Наименование);
СТрокаТаб.ГруппироватьПО = Строка(ВыборкаТЗ.Номенклатура.КаталогИнтернетМагазина) + Строка(ВыборкаТЗ.Номенклатура.Родитель);
СтрокаТаб.АртикулКартинки = ВыборкаТЗ.Номенклатура.КаталогИнтернетМагазина.Артикул;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура).Ссылка = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура",ВыборкаТЗ.Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Свойство.Код = "УТ0000005" Тогда
СтрокаТаб.Ткань = Выборка.Значение;
ИначеЕсли Выборка.Свойство.Код = "УТ0000006" Тогда
СтрокаТаб.Цвет = Выборка.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
СтрокаТаб.Уровень = Число(ВыборкаТЗ.Уровень());
Если ВыборкаТЗ.Номенклатура.ЭтоГруппа Тогда
СтрокаТаб.Группировка = "ЦеноваяГруппа";
Иначе
СтрокаТаб.Группировка = ВыборкаТЗ.Группировка();
КонецЕсли;
СтрокаТаб.ТипЗаписи = ВыборкаТЗ.ТипЗаписи();
Для каждого СтрТаблицаТипЦен Из ТаблицаТипЦен Цикл
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
| ТипыЦенНоменклатуры.ПорядокОкругления,
| ТипыЦенНоменклатуры.ОкруглятьВБольшуюСторону,
| ЦеныНоменклатурыСрезПоследних.ТипЦен,
| ЦеныНоменклатурыСрезПоследних.Валюта
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТипыЦенНоменклатуры КАК ТипыЦенНоменклатуры
| ПО ЦеныНоменклатурыСрезПоследних.ТипЦен = ТипыЦенНоменклатуры.Ссылка
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура
| И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";
Запрос.УстановитьПараметр("Дата",КонецДня(ДатаПрайса));
Запрос.УстановитьПараметр("Номенклатура",Выборка.Номенклатура);
Запрос.УстановитьПараметр("ТипЦен",СтрТаблицаТипЦен.ТипЦен);
ВыборкаТипЦен = Запрос.Выполнить().Выбрать();
Если ВыборкаТипЦен.Следующий() Тогда
СтрВалюта = ?(мЕстьВалюта, " " + ВыборкаТипЦен.Валюта, "");
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен] = ОбщегоНазначения.ФорматСумм(Ценообразование.ОкруглитьЦену(ВыборкаТипЦен.Цена, ВыборкаТипЦен.ПорядокОкругления, ВыборкаТипЦен.ОкруглятьВБольшуюСторону)) + СтрВалюта;
Иначе
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен] = "";
КонецЕсли;
Если мЕстьЕдиница Тогда
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен + "ЕдИзм"] = ВыборкаТипЦен.ЕдиницаИзмерения;
КонецЕсли;
КонецЦикла;
ПоказатьКАК ПРАВИЛЬНО СДЕЛАТЬ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для начала взять учебники русского языка средней школы и все их хорошенько проштудировать.
По теме ошибки: когда создаешь колонку табличной части с ценой, то в первом параметре указывается идентификатор колонки, а ты туда передаешь справочник тип цен. Это компилятор самостоятельно преобразует в строку в виде представления справочника, но лучше сделай так:
Та же ошибка когда обращаешься к этим колонкам, вот тут уже надо явным образом указывать:
По теме ошибки: когда создаешь колонку табличной части с ценой, то в первом параметре указывается идентификатор колонки, а ты туда передаешь справочник тип цен. Это компилятор самостоятельно преобразует в строку в виде представления справочника, но лучше сделай так:
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен.Код,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры"));
Та же ошибка когда обращаешься к этим колонкам, вот тут уже надо явным образом указывать:
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен.Код] =
Сделал так
ругается
{ВнешняяОбработка.ПечатьПрайсЛиста.МодульОбъекта(1056)}: Ошибка при вызове метода контекста (Добавить)
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен.Код,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры"));
по причине:
Неверное имя колонки
Для каждого СтрТаблицаТипЦен Из ТаблицаТипЦен Цикл
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен.Код,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры"));
ТабЗнач.Колонки.Добавить(Строка(СтрТаблицаТипЦен.ТипЦен) + "ЕдИзм");
КонецЦикла;
ругается
{ВнешняяОбработка.ПечатьПрайсЛиста.МодульОбъекта(1056)}: Ошибка при вызове метода контекста (Добавить)
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен.Код,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры"));
по причине:
Неверное имя колонки
Корованы идут....
Почему
а не
?
Почему
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры"));
а не
ТабЗнач.Колонки.Добавить(СтрТаблицаТипЦен.ТипЦен.Наименование,Новый ОписаниеТипов ("СправочникСсылка.ТипыЦенНоменклатуры");
?
Почему
а не
СтрокаТаб[СтрТаблицаТипЦен.ТипЦен] = ОбщегоНазначения.ФорматСумм(Ценообразование.ОкруглитьЦену(ВыборкаТипЦен.Цена, ВыборкаТипЦен.ПорядокОкругления, ВыборкаТипЦен.ОкруглятьВБольшуюСторону)) + СтрВалюта;
а не
СтрТаблицаТипЦен[блаблабла ?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот