Имя: Пароль:
1C
1С v8
вывод в строку сообщить справочника Номенклатура
0 DudkovDA
 
12.10.21
18:15
Доброго дня!
Прошу помочь с кодом, пока я "деревянный"

Справочник Номенклатура содержит иерархический список: Компьютеры, Мониторы. Принтеры, Услуги.
Необходимо обработкой вывести в строку Наименование, ЦенаПокупки, ЦенаПродажи

//Вывести в строку наименования номенклатуры, ЦенуПокупки, ЦенуПродажи
Массив = Новый Массив;
ТЗ = Новый ТаблицаЗначений;
Номенклатура = Справочники. Номенклатура;
ТЗ.Колонки.Добавить(СправочникСсылка.Номенклатура);
ТЗ.Колонки.Добавить(СправочникСсылка.Номенклатура.ОбъектЦенаПокупки);
Массив.Добавить(ТЗ);
Если ТипЗнч(ЭМ) = Тип("ТаблицаЗначений") Тогда
Для Каждого ТекСтрока Из ЭМ Цикл
Сообщить(ТекСтрока.Номенклатура+":"+ТекСтрока. СправочникСсылка.Номенклатура.ОбъектЦенаПокупки);
КонецЦикла;
КонецЕсли;
1 Builder
 
12.10.21
18:19
(0) домашнее задание делаешь?
2 ДенисЧ
 
12.10.21
18:20
Сообщить("" + ТекСтрока.Номенклатура+":" ... и т.д)
3 Базис
 
naïve
12.10.21
18:20
Забудь код. Напиши по пунктам, что ты хочешь сделать. Сперва самым общим образом: "Я хочу вывести каждую строку моего справочника, после этого в новой строке написать "Кто молодец? Я молодец!"
4 Builder
 
12.10.21
18:23
(0) Что не получается то?
5 DudkovDA
 
12.10.21
18:33
//Создать Таблицу.Значений
Загрузить в неё из Справочника Номенклатура наименование, ЦенуПокупки, ЦенуПродажи (не знаю, как это правильно обозначается в системе)
Затем все это поместить в массив
И после этого циклами вывести строчно наименование, ЦенуПокупки, ЦенуПродажи
6 Базис
 
naïve
12.10.21
18:34
Вам бы подучить не только вас, но и постановщика задач.
7 DudkovDA
 
12.10.21
18:36
Задание: Создать обработку по выводу в строку сообщить справочника Номенклатура, выводить Наименование, ЦенаПокупки, ЦенаПродажи.
8 DudkovDA
 
12.10.21
18:38
//Или надо было сделать нечто подобное:
МассивТипов=Новый Массив;
МассивТипов.Добавить(ТипЗнч(Справочники.Номенклатура.ПустаяСсылка()));
ОписаниеТипа=Новый ОписаниеТипов(МассивТипов);
ТЗ.Колонки.Добавить("Номенклатура", ОписаниеТипа);
9 DudkovDA
 
12.10.21
18:51
//Вывести в строку наименования номенклатуры, ЦенуПокупки, ЦенуПродажи
Массив = Новый Массив;
ТЗ = Новый ТаблицаЗначений;
Номенклатура = Справочники.Номенклатура;
ТЗ.Колонки.Добавить(Справочники.Номенклатура);
ТЗ.Колонки.Добавить(Справочники.Номенклатура.ОбъектЦенаПокупки);
Массив.Добавить(ТЗ);
Для Каждого ЭМ Из Массив Цикл
Если ТипЗнч(ЭМ) = Тип("ТаблицаЗначений") Тогда
Для Каждого ТекСтрока Из ЭМ Цикл
Сообщить("" + ТекСтрока.Номенклатура+":" +ТекСтрока. Номенклатура.ОбъектЦенаПокупки);
КонецЦикла;
КонецЕсли;
КонецЦикла;
//выдает ошибку Неверное имя колонки
10 Builder
 
12.10.21
18:53
(9) да, это шедеврально....
11 ДенисЧ
 
12.10.21
18:53
"ТЗ.Колонки.Добавить(Справочники.Номенклатура);"

За это нужно с почётом выдавать метлу и пинками отгонять от компьютера.
Хотя бы за то, что не умеешь читать справку.
12 DudkovDA
 
12.10.21
19:02
Понятно, что все криво.
Но все же помогите пожалуйста
13 Базис
 
naïve
12.10.21
19:05
1. В 1С8 всё, что можно, делается объектом Запрос.
2. Что вы уверенно знаете в программировании? Калькулятор можете написать?
14 Caspersky
 
12.10.21
19:36
(0) Запрос = Новый Запрос("Выбрать Спр.Код, Спр.Наименование Из Справочник.Номенкнлатура КАК Спр ГДЕ НЕ Спр.ПометкаУдаления");
Выборка = Запрос.Выполнить.Выбрать();
Пока Выборка.Следующий() Цикл
сообщить(Выборка.Наименование);
Сообщить(Выборка.Код)
КонецЦикла;

цены добавить в запрос левым соединением
15 Caspersky
 
12.10.21
19:38
(14) это для затравки,
ну а вообще  - по теории базовой бы пройтись для начала
16 Caspersky
 
12.10.21
19:41
(12) методологически решение в (14), осталось чуть-чуть осмыслить с синтаксис-помощником в конфигураторе и готово)
17 DudkovDA
 
12.10.21
19:47
В программировании почти полный ноль...
Caspersky спасибо большое. Попробую поэкспериментировать
18 DudkovDA
 
12.10.21
19:57
Процедура СформироватьНаСервере()
    // запрос из справочника ЦенаПокупки.
           Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Ссылка, Наименование, Родитель КАК Группа
    ИЗ Справочник.Номенклатура
    ГДЕ Ссылка В ИЕРАРХИИ (&ЦенаПокупки)";
    Выборка = Запрос.Выполнить.Выбрать();
    Пока Выборка.Следующий() Цикл
        сообщить(Выборка.Наименование);
        Сообщить(Выборка.Код)
    КонецЦикла;
19 BABYLKA
 
12.10.21
21:35
Так так походу не я один пытаюсь сделать это задание в интернете )))
20 Базис
 
naïve
12.10.21
21:51
Блин. А ну как новый коллега узнает, что нейрохирург получат больше и авансом?
21 DudkovDA
 
13.10.21
11:49
Что то в этом роде:
&НаСервере
Процедура СформироватьНаСервере()
    // Формирую запрос к реквизитам справочника Номенклатура.
    Запрос = Новый Запрос("Выбрать Реквизиты.Справочник.Номенклатура Из Справочник.Номенклатура КАК Спр ГДЕ НЕ Спр.ПометкаУдаления");
    Выборка = Запрос.Выполнить.Выбрать();
    //ЛЕВОЕ СОЕДИНЕНИЕ
        Справочник.Характеристики КАК Характеристики ПО  ЦенаПокупки. = Реквизит.Наименование"
    // продолжаем ,без учета вставки левого соединения
    Пока Выборка.Следующий() Цикл
        сообщить(Выборка.ВидНоменклатуры);
        Сообщить(Выборка.ЦенаПокупки)
    КонецЦикла;
        
КонецПроцедуры
22 Сергиус
 
13.10.21
14:45
(21)Супер!)