УТ 10.3 Заполнить свойства номенклатуры программно
Здравствуйте уважаемые эксперты, не могу понять почему не срабатывает обработка которую я написал. Подскажите пожалуйста!
Я написал запрос, в консоли запросов он выводит те поля с которыми я работаю. Теперь я хочу в обработке их Сообщить(); и далее заполнить каждое свойство номенклатуры по принципу ЗначенияСвойствОбъектов.Значение = Номенклатура.Код
ВОПРОС №1: Почему у меня не выводится каждая позиция с 4 полями через Сообщить() ?
ВОПРОС №2: Если не выводить сообщением 4 поля, как задать для номенклатуры обработкой результата ЗначенияСвойствОбъектов.Значение = Номенклатура.Код ?
Я написал запрос, в консоли запросов он выводит те поля с которыми я работаю. Теперь я хочу в обработке их Сообщить(); и далее заполнить каждое свойство номенклатуры по принципу ЗначенияСвойствОбъектов.Значение = Номенклатура.Код
ВОПРОС №1: Почему у меня не выводится каждая позиция с 4 полями через Сообщить() ?
ВОПРОС №2: Если не выводить сообщением 4 поля, как задать для номенклатуры обработкой результата ЗначенияСвойствОбъектов.Значение = Номенклатура.Код ?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство";
Запрос.УстановитьПараметр("Свойство", "КодДляСайта");
//Вывести результат запроса
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка);
КонецЦикла;
ПоказатьПо теме из базы знаний
- Загрузка номенклатуры в справочник и документ из файла Excel и CSV, обновление цен и реквизитов (адаптируется под разные конфигурации 1С: 7.7)
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2
- Загрузка номенклатуры из Битрикс
- Загрузка свойств товаров или услуг из MS Excel в справочник номенклатуры для 1С: УТ 10.3
- Загрузка чеков ФНС в документы 1С:БП, 1С:УНФ, 1С:ERP, 1С:КА и 1С:УТ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ВОПРОС №1: Почему у меня не выводится каждая позиция с 4 полями через Сообщить() ?
- Потому что конкретное свойство хочешь задать, только неправильно
*Свойство - ссылка, а в параметр передаешь Строку
ВОПРОС №2: Если не выводить сообщением 4 поля, как задать для номенклатуры обработкой результата ЗначенияСвойствОбъектов.Значение = Номенклатура.Код ?
- берешь объект по ссылке спр. номенклатура, циклом проходишь по свойствам, находишь нужное, заполняешь значение.
ВОПРОС №1: Почему у меня не выводится каждая позиция с 4 полями через Сообщить() ?
- Потому что конкретное свойство хочешь задать, только неправильно
*Свойство - ссылка, а в параметр передаешь Строку
ВОПРОС №2: Если не выводить сообщением 4 поля, как задать для номенклатуры обработкой результата ЗначенияСвойствОбъектов.Значение = Номенклатура.Код ?
- берешь объект по ссылке спр. номенклатура, циклом проходишь по свойствам, находишь нужное, заполняешь значение.
(5) не работает как Вы предложили
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство";
Запрос.УстановитьПараметр("Свойство", "КодДляСайта");
//Вывести результат запроса
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.ссылка);
Сообщить(Выборка.Код);
КонецЦикла;
Показать
1) не может преобразовать строку выборки из результата запроса к типу строка.
2) непонятно
у тебя, скорее всего, неправильный запрос, если только ты не хочешь получить соединение всех элементов справочника Номенклатура со всеми записями регистра сведений ЗначенияСвойствОбъектов
2) непонятно
у тебя, скорее всего, неправильный запрос, если только ты не хочешь получить соединение всех элементов справочника Номенклатура со всеми записями регистра сведений ЗначенияСвойствОбъектов
(6) 2) Да вы правы, я хочу соединить поля и вывести их, ну а после как я это пойму, я бы тоже самое проделал но установил бы значение (ЗначенияСвойствОбъектов.Значение = Номенклатура.Код).
Немогу понять почему, даже так не срабатывает?
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.ссылка);
Сообщить(Выборка.Код);
КонецЦикла;
Немогу понять почему, даже так не срабатывает?
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.ссылка);
Сообщить(Выборка.Код);
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство";
//Запрос.УстановитьПараметр("Свойство", "КодДляСайта");
Запрос.УстановитьПараметр("Свойство", ПланВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("КодДляСайта"));
//Вывести результат запроса
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.ссылка);
Сообщить(Выборка.Код);
КонецЦикла;
Попробуйте так.
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство";
//Запрос.УстановитьПараметр("Свойство", "КодДляСайта");
Запрос.УстановитьПараметр("Свойство", ПланВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("КодДляСайта"));
//Вывести результат запроса
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.ссылка);
Сообщить(Выборка.Код);
КонецЦикла;
Попробуйте так.
(9) тогда, ошибка:
{ВнешняяОбработка.ЗаполнениеСвойстваКодИзКода.Форма.Форма.Форма(21,39)}: Переменная не определена (ПланВидовХарактеристик)
Запрос.УстановитьПараметр("Свойство", <<?>>ПланВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("КодДляСайта")); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ЗаполнениеСвойстваКодИзКода.Форма.Форма.Форма(21,39)}: Переменная не определена (ПланВидовХарактеристик)
Запрос.УстановитьПараметр("Свойство", <<?>>ПланВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("КодДляСайта")); (Проверка: Толстый клиент (обычное приложение))
(11) Для УТ10.3 не работает видимо... Ничего не произошло
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗаполнениеСвойстваКодИзКода();
КонецПроцедуры
Функция ЗаполнениеСвойстваКодИзКода()
// Запросом получаю 4 поля таблицы: НазваниеНоменклатура, КодНоменклатуры, НазваниеСвойства, ЗначениеСвойства
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство";
//Запрос.УстановитьПараметр("Свойство", "КодДляСайта");
Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("КодДляСайта"));
//Вывести результат запроса
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.ссылка);
Сообщить(Выборка.Код);
КонецЦикла;
КонецФункции
Показать
(14) ужасный день, почему не работает...
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗаполнениеСвойстваКодИзКода();
КонецПроцедуры
Функция ЗаполнениеСвойстваКодИзКода()
// Запросом получаю 4 поля таблицы: НазваниеНоменклатура, КодНоменклатуры, НазваниеСвойства, ЗначениеСвойства
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство";
//Запрос.УстановитьПараметр("Свойство", "КодДляСайта");
Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00223"));
//Вывести результат запроса
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.ссылка);
Сообщить(Выборка.Код);
КонецЦикла;
КонецФункции
ПоказатьПрикрепленные файлы:
ЗаполнениеСвойстваКодИзКода.epf
всем спасибо огромное! Если кому то понадобится
КодДляСайта = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00223");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код,
| ЗначенияСвойствОбъектов.Свойство,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
|ГДЕ ЗначенияСвойствОбъектов.Значение Есть NULL";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Ссылка;
МенеджерЗаписи.Свойство = КодДляСайта ;
МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Код;
МенеджерЗаписи.Записать();
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот