Консультация № 161248
24.02.2009, 10:04
0.00 руб.
0 5 1
Добрый день, уважаемые эксперты!
Помогите решить проблему . Проблема в следующем: конфигурация Торговля и Склад 9.2, 1С версии 7.7; необходимо в созданный мной документ (что-то наподобие Реализации только без цен) включить проверку основного свойства номенклатуры, т.е. если значение основного свойства выбранного товара не соответствует значению в условии, то документ не проводится.
И еще один вопрос также актуальный для меня . Можно ли сделать так, чтобы в документе Реализация скидка в зависимости от значения основоного свойства товара, либо от другого реквизита не учитывалась (т.е. в одном и том же документе в зависимости от значения основного свойства, либо другого реквизита сумма по одному товару считается со скидкой, а по другому скидка не берется)?
Заранее спасибо!

Обсуждение

Неизвестный
24.02.2009, 10:38
общий
это ответ
Здравствуйте, Иван Спиридонов!

По первой части вопроса:
в модуле документа в процедуре "ОбработкаПроведения()" можно сделать выборку по строкам документа и проверку каждой строки. Если условие не совпадает поставит Возврат(0). Тогда документ не проведется.
По второй части вопроса:
в глобальном модуле надо будет править процедуру глПересчитатьСкидки(Конт), глПересчетТабличнойЧасти(....) и глПересчитатьСтрокиДокумента(...)
Неизвестный
24.02.2009, 10:40
общий
Вру... Надо ставить не Возврат(0), а СтатусВозврата(0)
Неизвестный
24.02.2009, 18:39
общий
Но остался вопрос: как проверить на соответствие условию именно реквизит "основновное свойство" номенклатуры? Я пытался сделать так
Код:
	Спр = СоздатьОбъект("Справочник.СвойстваНоменклатуры");
Спр.ИспользоватьВладельца(Номенклатура);
Спр1 = СоздатьОбъект("Справочник.ЗначенияСвойств");
Спр1.ИспользоватьВладельца(Спр);
Св_во = Спр1.НайтиПоКоду("001");
Сообщить(Св_во);
Если Номенклатура.ОсновноеСвойство <> Св_во Тогда
Предупреждение("Не верный вид услуги!");
НеПроводитьДокумент();

В сообщении выводится пустая строка. Думаю, что нужно попробовать сравнить основные свойства как строковые параметры. У меня очень небольшой опыт в программировании, поэтому буду очень признателен, если поделитесь своими мыслями на счет практической реализации моей задумки.
Неизвестный
02.03.2009, 09:08
общий
Надо сравнение делать так:
Если Номенклатура.ОсновноеСвойство.ЗначениеСвойства <> Св_во Тогда
Неизвестный
02.03.2009, 20:20
общий
Спасибо, Игорь Валерьевич. Я сам додумался сделать примерно также:
Код:
Если Строка(Номенклатура.ОсновноеСвойство.ЗначениеСвойства) <> "Значение свойства" Тогда
Форма ответа