Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:08

Обращение к справочнику

Автор vvs_1979, 31 авг 2023, 15:51

0 Пользователей и 1 гость просматривают эту тему.

vvs_1979

Ещё бы кто привёл пример или рассказал где почитать !

LexaK

попробуйте описать саму задачу!
возможно, способы ее решения совсем другие, чем перебор полей справочника.
если помогло нажмите: Спасибо!

vvs_1979

Я писал выше:
Есть выбранный товар с количеством и ценой в товарной части накладной.
И некая процедура (на кнопку), которая пробегает по товарной части накладной (запасы) и по каждой строчке нужно получить 2-ва поля и соответствующей строки из справочника товаров (номенклатура).
Пробегаю в цикле Запасы, а как найти строку в номенклатуре ? По наименованию искать не предлагать.

alexandr_ll

Цитата: vvs_1979 от 04 сен 2023, 12:25Я писал выше:
Есть выбранный товар с количеством и ценой в товарной части накладной.
И некая процедура (на кнопку), которая пробегает по товарной части накладной (запасы) и по каждой строчке нужно получить 2-ва поля и соответствующей строки из справочника товаров (номенклатура).
Пробегаю в цикле Запасы, а как найти строку в номенклатуре ? По наименованию искать не предлагать.
Вы приведите фрагмент кода, как вы пробегаете по товарной части накладной.

vvs_1979

Для каждого СтрокаТовар Из Объект.Запасы Цикл
       А="Название: "+СтрокаТовар.Номенклатура+" Цена: "+СтрокаТовар.Цена+" Количество: "+СтрокаТовар.Количество;
      Сообщить(А);
   КонецЦикла;

А как мне получить соответствующую запись в справочнике Номенклатура, чтобы прочитать там поля, никак не найду :-(

antoneus

Вот она, соответствующая запись -> СтрокаТовар.Номенклатура. Это ссылка на элемент справочника. На сервере через точку можно обратиться к полям.

LexaK

один из примеров обращения к реквизитам

Для каждого СтрокаТовар Из Объект.Запасы Цикл
       А="Название: "+СтрокаТовар.Номенклатура+" Цена: "+СтрокаТовар.Цена+" Количество: "+СтрокаТовар.Количество;
      Сообщить(А);
      Сообщить("Артикул " + ПолучитьЗначениеРеквизита(СтрокаТовар.Номенклатура, "Артикул"));
      Сообщить("Группа " + ПолучитьЗначениеРеквизита(СтрокаТовар.Номенклатура, "Родитель"));
      Сообщить("ВидНоменклатуры " + ПолучитьЗначениеРеквизита(СтрокаТовар.Номенклатура, "ВидНоменклатуры"));
      //и т.д.
   КонецЦикла;
...
КонецПроцедуры;

&НаСервереБезКонтекста
Функция ПолучитьЗначениеРеквизита(прНом, ИмяРеквизита)
    Возврат прНом[ИмяРеквизита];
КонецФункции;
если помогло нажмите: Спасибо!

vvs_1979

Так работает.
А теперь приближаемся к самому главному:
В справочнике на запись прикреплён ФайлКартинки.
Как бы его сохранить в определённую директорию ?

LexaK

наверно вам не очевидно, но напомню, в 1С есть встроенный справочник по командам платформы 1С
открываете его, находите нужную команду, в справке описание этой команды, параметры и даже краткие примеры есть
как ее выполнить.
например для вашего вопроса есть объект Картинка, набираем в помощнике и читаем,
(а еще лучше в любой типовой находим пример и копируем)

Картинка (Picture)
Записать (Write)
Вариант синтаксиса: В файл
Синтаксис:
Записать(<ИмяФайла>, <ВсеВарианты>, <ПодобратьВариант>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка.
Полное имя файла, в котором будет сохранена картинка. Если имя каталога не указано, то картинка будет сохранена в каталог исполняемых файлов программы.
<ВсеВарианты> (необязательный)
Тип: Булево.
Данный параметр используется, если картинка представлена архивом, содержащим варианты этой картинки. Если значение Ложь - будет записан один вариант картинки. Если значение Истина - все варианты картинки.
Значение по умолчанию: Ложь.
<ПодобратьВариант> (необязательный)
Тип: Соответствие, Неопределено.
Данный параметр используется только, если картинка представлена архивом, содержащим варианты этой картинки, и <ВсеВарианты> установлен в значение Ложь.
Пары "Ключ-Значение" соответствуют xml-тегам в манифесте вариантов картинки. Если параметры выбора варианта не заданы, будет выбран вариант по умолчанию. Если параметры указывают на несуществующий в архиве вариант, то будет возвращено Неопределено.
Значение по умолчанию: Неопределено.
Описание варианта метода:
Запись картинки в файл.
Вариант синтаксиса: В поток
Синтаксис:
Записать(<Поток>, <ВсеВарианты>, <ПодобратьВариант>)
Параметры:
<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для записи картинки.
<ВсеВарианты> (необязательный)
Тип: Булево.
Данный параметр используется, если картинка представлена архивом, содержащим варианты этой картинки. Если значение Ложь - будет записан один вариант картинки. Если значение Истина - все варианты картинки.
Значение по умолчанию: Ложь.
<ПодобратьВариант> (необязательный)
Тип: Соответствие, Неопределено.
Данный параметр используется только, если картинка представлена архивом, содержащим варианты этой картинки, и <ВсеВарианты> установлен в значение Ложь.
Пары "Ключ-Значение" соответствуют xml-тегам в манифесте вариантов картинки. Если параметры выбора варианта не заданы, будет выбран вариант по умолчанию. Если параметры указывают на несуществующий в архиве вариант, то будет возвращено Неопределено.
Значение по умолчанию: Неопределено.
Описание варианта метода:
Запись картинки в поток.
Описание:
Записывает картинку в файл с указанным именем.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Пример:
Картинка.Записать("C:\My Documents\My Pictures\home.bmp");
Использование в версии:
Доступен, начиная с версии 8.0.
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск