Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

вывод в строку сообщить справочника Номенклатура

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

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

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

Загрузить в неё из Справочника Номенклатура наименование, ЦенуПокупки, ЦенуПродажи (не знаю, как это правильно обозначается в системе)
Затем все это поместить в массив
И после этого циклами вывести строчно наименование, ЦенуПокупки, ЦенуПродажи
   Базис
 
6 - 12.10.21 - 18:34
Вам бы подучить не только вас, но и постановщика задач.
   DudkovDA
 
7 - 12.10.21 - 18:36
Задание: Создать обработку по выводу в строку сообщить справочника Номенклатура, выводить Наименование, ЦенаПокупки, ЦенаПродажи.
   DudkovDA
 
8 - 12.10.21 - 18:38
//Или надо было сделать нечто подобное:

МассивТипов=Новый Массив;
МассивТипов.Добавить(ТипЗнч(Справочники.Номенклатура.ПустаяСсылка()));
ОписаниеТипа=Новый ОписаниеТипов(МассивТипов);
ТЗ.Колонки.Добавить("Номенклатура", ОписаниеТипа);
   DudkovDA
 
9 - 12.10.21 - 18:51
//Вывести в строку наименования номенклатуры, ЦенуПокупки, ЦенуПродажи

Массив = Новый Массив;
ТЗ = Новый ТаблицаЗначений;
Номенклатура = Справочники.Номенклатура;
ТЗ.Колонки.Добавить(Справочники.Номенклатура);
ТЗ.Колонки.Добавить(Справочники.Номенклатура.ОбъектЦенаПокупки);
Массив.Добавить(ТЗ);
Для Каждого ЭМ Из Массив Цикл
 Если ТипЗнч(ЭМ) = Тип("ТаблицаЗначений") Тогда
Для Каждого ТекСтрока Из ЭМ Цикл
Сообщить("" + ТекСтрока.Номенклатура+":" +ТекСтрока. Номенклатура.ОбъектЦенаПокупки);
КонецЦикла;
КонецЕсли;
КонецЦикла;
//выдает ошибку Неверное имя колонки
   Builder
 
10 - 12.10.21 - 18:53
(9) да, это шедеврально....
   ДенисЧ
 
11 - 12.10.21 - 18:53
"ТЗ.Колонки.Добавить(Справочники.Номенклатура);"

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

цены добавить в запрос левым соединением
   Caspersky
 
15 - 12.10.21 - 19:38
(14) это для затравки,
ну а вообще  - по теории базовой бы пройтись для начала
   Caspersky
 
16 - 12.10.21 - 19:41
(12) методологически решение в (14), осталось чуть-чуть осмыслить с синтаксис-помощником в конфигураторе и готово)
   DudkovDA
 
17 - 12.10.21 - 19:47
В программировании почти полный ноль...
Caspersky спасибо большое. Попробую поэкспериментировать
   DudkovDA
 
18 - 12.10.21 - 19:57
Процедура СформироватьНаСервере()
    // запрос из справочника ЦенаПокупки.

           Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ Ссылка, Наименование, Родитель КАК Группа 
    ИЗ Справочник.Номенклатура 
    ГДЕ Ссылка В ИЕРАРХИИ (&ЦенаПокупки)";
    Выборка = Запрос.Выполнить.Выбрать();
    Пока Выборка.Следующий() Цикл
        сообщить(Выборка.Наименование);
        Сообщить(Выборка.Код)
    КонецЦикла;
   BABYLKA
 
19 - 12.10.21 - 21:35
Так так походу не я один пытаюсь сделать это задание в интернете )))
   Базис
 
20 - 12.10.21 - 21:51
Блин. А ну как новый коллега узнает, что нейрохирург получат больше и авансом?
   DudkovDA
 
21 - 13.10.21 - 11:49
Что то в этом роде:
&НаСервере
Процедура СформироватьНаСервере()
    // Формирую запрос к реквизитам справочника Номенклатура.

    Запрос = Новый Запрос("Выбрать Реквизиты.Справочник.Номенклатура Из Справочник.Номенклатура КАК Спр ГДЕ НЕ Спр.ПометкаУдаления");
    Выборка = Запрос.Выполнить.Выбрать();
    //ЛЕВОЕ СОЕДИНЕНИЕ

        Справочник.Характеристики КАК Характеристики ПО  ЦенаПокупки. = Реквизит.Наименование"
    // продолжаем ,без учета вставки левого соединения

    Пока Выборка.Следующий() Цикл
        сообщить(Выборка.ВидНоменклатуры);
        Сообщить(Выборка.ЦенаПокупки)
    КонецЦикла;
        
КонецПроцедуры
   Сергиус
 
22 - 13.10.21 - 14:45
(21)Супер!)


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.