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

Добавить в документ строку с номенклатурой

Автор Cruw, 19 авг 2013, 08:04

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

Cruw

Добрый день! В документ Отчет ККМ, нужно добавить новую строку, программно задав кол-во, сумму, и номенклатуру.
Не могу номеклатуру автоматом выбрать. Например у меня есть в справочнике номенклатуры позиция "KeyBox", надо по нажатию кнопки, добавить строку в которой будет так. Номенклатура =KeyBox, кол-во=2, сумма 190.
Мой код не работает, не пойму почему.
-----------------------------
Процедура ПоКнопкеОбработать()

НоваяСтрока();
Цена = 190;
Количкство=2;
спр=СоздатьОбъект("Справочники.Номенклатура");
Если спр.НайтиПоНаименованию("KeBox")=1 Тогда
Номенклатура=спр.ТекущийЭлемент();
КонецЕсли;
Форма.Обновить( 1);
Сообщить("Добав ил новую строку");
---------------------------------------------

mixqn

так а что именно не работает то? строка не появилась или появилась, но номенклатура там пустая?
если второе, то может быть причина в этом:
Цитата: Cruw от 19 авг 2013, 08:04пр.НайтиПоНаименованию("KeBox")
(сравним с)
Цитата: Cruw от 19 авг 2013, 08:04позиция "KeyBox"


Cruw

Строка появилась, номенклатура пустая, остальные поля заполнились нормально. Позиция KeyBox, точно есть в номенклатуре.

mixqn

тогда еще раз повторюсь: не в этой ли строке ошибка:
Цитата: Cruw от 19 авг 2013, 08:04спр.НайтиПоНаименованию("KeBox")=1
конкретно имею ввиду "KeBox". не должно ли там быть "KeyBox"?

вообще лучше сделайте так:
мНаименование = "KeyBox";
....
Если спр.НайтиПоНаименованию(мНаименование)=1 Тогда

т.е. старайтесь избегать констант в коде.
Добавлено: 19 авг 2013, 08:54


сделайте так например:
мНаименование = "KeyBox";
Если спр.НайтиПоНаименованию(мНаименование )=1 Тогда
Номенклатура=спр.ТекущийЭлемент();
Иначе
Сообщить("Номенклатура с наименованием " + мНаименование + " не найдена");
КонецЕсли;

Cruw

Там KeyBox, эт тут я стер нечаянно) Спасибо, вечером попробую, отпишу)

Herby

Цитата: Cruw от 19 авг 2013, 08:58Там KeyBox, эт тут я стер нечаянно) Спасибо, вечером попробую, отпишу)

поиск по наименование делать не желательно. Если пользователь наименование элемента справочника поменяет, ваш код уже работать не будет.

осуществляйте поиск по коду.

mixqn

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

лучше использовать константы заданные каким-то таким способом, который гарантирует, что там правильное значение - например, ограничен доступ.
для этого подойдут либо собственно константы, либо можно предусмотреть другую структуру данных (например, у нас в базе есть регистр "Константы", доступ на запись есть только у программистов, т.е. получаем полный аналог "обычных" констант, но для добавления новой не нужно структуру данных менять и обновляться нединамически; примечание: речь идет про УПП, платформа 8.2)
Добавлено: 19 авг 2013, 10:34


альтернатива константам, как я выше уже писал - явное указание параметров в виде реквизитов формы. так что пользователь будет видеть, заполнено значение или нет. в этом случае поиск по коду/наименованию/другим реквизитам допустим.

Теги:

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

Рейтинг@Mail.ru

Поиск