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

Программная запись свойства номернклатуры

Автор Евгений90, 17 окт 2012, 08:45

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

Евгений90

По всякому пробовал, если без пробела, то ошибка Переменная ТоварыМФГ не определена

Slin

skype: slin-dev

mixqn

Цитата: Slin от 17 окт 2012, 10:44
Цитата: Евгений90 от 17 окт 2012, 10:14Товары МФГ
пробел между Товары и МФГ
да, действительно, пробел я не заметил.
Цитата: Евгений90 от 17 окт 2012, 10:47
По всякому пробовал, если без пробела, то ошибка Переменная ТоварыМФГ не определена
интересная, однако, у вас логика )) если сообщается, что переменная не определена - попробовать вставит пробел. хитро :D
переменная не определена - значит буквально то, что написано: не определили вы переменную. нужно либо реквизит с таким именем создать (реквизит формы или самой обработки - не важно), либо же в коде объявить переменную.

Евгений90

Цитата: mixqn от 17 окт 2012, 11:36интересная, однако, у вас логика )) если сообщается, что переменная не определена - попробовать вставит пробел. хитро
переменная не определена - значит буквально то, что написано: не определили вы переменную. нужно либо реквизит с таким именем создать (реквизит формы или самой обработки - не важно), либо же в коде объявить переменную.

Объявил переменную так

перем ТоварыМФГ;
перем Мелон;

Теперь еще одна ошибка

{Форма.Форма.Форма(15)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();

по причине:
{(6, 47)}: Синтаксическая ошибка "МФГ"
СправочникНоменклатура.Родитель = &Товары <<?>>МФГ И СправочникНоменклатура.ЭтоГруппа

Добавлено: 17 окт 2012, 12:23


Переименовал группу Товары МФГ в ТоварыМФГ, код получился такой

Процедура КнопкаВыполнитьНажатие(Кнопка)
перем ТоварыМФГ;
перем Мелон;
Мелон = "Мелон";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    СправочникНоменклатура.Ссылка КАК Номенклатура
|ИЗ
|    Справочник.Номенклатура КАК СправочникНоменклатура
|ГДЕ
|    СправочникНоменклатура.Родитель = &ТоварыМФГ И СправочникНоменклатура.ЭтоГруппа";
Запрос.УстановитьПараметр("ТоварыМФГ", ТоварыМФГ);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Объект = Выборка.Номенклатура;
    МенеджерЗаписи.Свойство = "Импортер";
   МенеджерЗаписи.Значение = Мелон;
    МенеджерЗаписи.Записать();
КонецЦикла;
КонецПроцедуры


Никакой реакции нету, ничего не записывается, подскажите что дальше ?

mixqn

:)
Нескромный вопрос можно? Давно 1С занимаетесь?

Значение переменной ТоварыМФГ не хотите определить? У вас там сейчас Неопределено и результат запроса пустой - логично, что ничего не происходит.

И еще маленькое замечание:
Мелон = "Мелон";
это вы что имели ввиду? у вас значение свойства имеет тип строка? или же все таки там должна быть ссылка на какой-то справочник?

Евгений90

Цитата: mixqn от 17 окт 2012, 12:29Нескромный вопрос можно? Давно 1С занимаетесь?

2 недели :)
Добавлено: 17 окт 2012, 12:33


Цитата: mixqn от 17 окт 2012, 12:29это вы что имели ввиду? у вас значение свойства имеет тип строка? или же все таки там должна быть ссылка на какой-то справочник?

там тип строка, никакого справочника нету

mixqn

Цитата: Евгений90 от 17 окт 2012, 12:322 недели
оно и чувствуется ))
Цитата: Евгений90 от 17 окт 2012, 12:32там тип строка, никакого справочника нету
ок, значит с этим все в порядке.

таких конструкций
Мелон = "Мелон";
лучше избегать вовсе.
лучше вынесите эти переменные в форму в виде реквизитов, чтобы пользователь явно указал значения - что такое Мелон  и что такое ТоварыМФГ.
Для удобства, вы можете задать значения этим реквизитам по умолчанию - установку реквизитов при открытии формы - вот там уже можно писать Мелон = "Мелон"; а в коде исполнения процедуры не желательно. объясню почему: выведя реквизиты в форму вы делаете свою обработку понятной не только вам, но и другим пользователям, а запихнув все в код вы получите обработку предназначенную строго под 1 режим работы + очевидно, как именно она работает будет только программисту. по трудоемкости вывод реквизитов на форму не проблема вообще.

Евгений90

Цитата: mixqn от 17 окт 2012, 12:29Значение переменной ТоварыМФГ не хотите определить? У вас там сейчас Неопределено и результат запроса пустой - логично, что ничего не происходит.

а как для переменной ТоварыМФГ     указать, что это группа в справочнике Номенклатура?

mixqn

форма управляемая или обычная?
про управляемые с ходу не скажу (практически не работал с ними), в обычной у поля ввода можно поставить значение свойства ВыборГруппИЭлементов - "Группы"

Евгений90

Форма обычная.Никаких полей ввода на форме нету, просто есть кнопка и все.  Все должно произойти по нажатию на нее

Теги:

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

Рейтинг@Mail.ru

Поиск