oknosoft Опубликовано: 1 мая, 2015 Опубликовано: 1 мая, 2015 (изменено) Предположим, что необходимо на покупные стеклопакеты внутри окна меньше 0.5 кв. м. сделать наценку для покупателя 15%, а на стеклопакеты больше 2 кв.м наценку 10%. Из карточки номенклатуры нужного стеклопакета нажмите. Перейти- УПзП: Расширение номенклатуры, закладка Формула, и ввести туда следующий код на языке 1с: Если Стр.SQR <0.5 Тогда Стр. Цена = Стр. Цена * 1.15; Иначе Если Стр.SQR>2 Тогда Стр. Цена = Стр. Цена * 1.1; Конец Если; Это универсальный механизм, и он позволяет корректировать цену не только на стеклопакеты и не только в зависимости от площади. И не только цену. Изменено 2 мая, 2015 пользователем oknosoft
V.N.T. Опубликовано: 1 мая, 2015 Опубликовано: 1 мая, 2015 Пример хороший. 1. Таких примеров нужно больше. 2. Скриншоты примеров здорово облегчают понимание примеров. 3. Описать переменные и формулы, которые можно использовать в поле "формула", чтобы появилось понимание, где и как можно самостоятельно использовать этот механизм.
oknosoft Опубликовано: 2 мая, 2015 Автор Опубликовано: 2 мая, 2015 Разделю ответ на три части: 1. Вводная, этот пост. 2. Описание переменных, описание сервисных функций, модуль и функция конфигурации где это используется. 3. Расширенный пример. Спасибо за вопрос в частности (он в самую точку), и спасибо за роль в развитии нашей программы вообще. V.N.T - первый пользователь нашей рисовалки окон. Теперь таких внедрений много, но понятно, что первое - самое важное. Раньше технология импортировалась из внешних программ, обычно из СуперОкон. Эта схема и сейчас работает, но она менее функциональна. Какие возможности предоставляет произвольный код на языке 1с в ценообразовании? Произвольные (любые). Вы можете использовать в определении себестоимости вашего материала текущий курс валют, гороскоп римского папы на прошлую среду и фазу луны. Ограничения лежат только в области здравого смысла и производительности компьютера.
oknosoft Опубликовано: 2 мая, 2015 Автор Опубликовано: 2 мая, 2015 Переменная Стр - это строка табличной части "Спецификация" справочника "ХарактеристикаНоменклатуры". Какие у нее есть поля- лучше посмотреть в конфигураторе, их немало. Она основная, так как именно она редактируется. Переменная "стрПродукция"- структура с информацией о продукции. Есть поля Высота, Длина, Номенклатура, Характеристика. Полный список полей лучше посмотреть в конфигураторе, поставив точку останова в строке вызова, полей много у этой структуры. Также есть соответствие "Парам", ее тоже лучше в конфигураторе смотреть, десятки полей. Вызов этой формулы осуществляется в функции пзЦенообразованиеСервер.ПолучитьЦенуНоменклатуры в этом коде Попытка Выполнить(СтрокаЦены.Формула); Исключение Попытка Стр.Цена = Вычислить(СтрокаЦены.Формула); Исключение КонецПопытки; КонецПопытки; В конце данного модуля есть функции, специально для вызова внутри формул ценообразования. И никто не мешает подключить свою внешнюю обработку, и использовать ее при расчете цены. Это для учета фазы луны Только надо позаботиться о кешировании, так как она вызывается много раз и может быть очень медленно.
oknosoft Опубликовано: 2 мая, 2015 Автор Опубликовано: 2 мая, 2015 Второй пример. Предположим, мы хотим сэкономить, и для продукции, в наименовании которой есть слово "Балкон", из каждой кучки больше двух саморезов будем вынимать один саморез. Вот код для этого: Если Найти(стрПродукция.Номенклатура.Наименование, "Балкон")>0 Тогда Если Стр.QTY>2 Тогда Стр.QTY = Стр.QTY -1; КонецЕсли; КонецЕсли; На картинках ввод формулы, и спецификация на балкон и не на балкон. 1
V.N.T. Опубликовано: 3 мая, 2015 Опубликовано: 3 мая, 2015 Переменная Стр - это строка табличной части "Спецификация" справочника "ХарактеристикаНоменклатуры". Какие у нее есть поля- лучше посмотреть в конфигураторе, их немало. Она основная, так как именно она редактируется. Переменная "стрПродукция"- структура с информацией о продукции. Есть поля Высота, Длина, Номенклатура, Характеристика. Полный список полей лучше посмотреть в конфигураторе, поставив точку останова в строке вызова, полей много у этой структуры. Также есть соответствие "Парам", ее тоже лучше в конфигураторе смотреть, десятки полей. Переменная Стр с ней всё ясно и понятно, а можно поподробнее про Переменная "стрПродукция" особенно про соответствие "Парам". В конфигурации километры кода и лопатить всю конфигурацию, чтобы понять замысел Творца, довольно проблематично. Хочется чётко понимать механизм работы, структуру переменных и логику работы.
oknosoft Опубликовано: 4 мая, 2015 Автор Опубликовано: 4 мая, 2015 (изменено) Как я уже написал, нужно поставить точку останова в коде, описанном тут http://forum-okna.ru...ndpost&p=348810 и, перезаписать продукцию. Щелкнуть на любом размере в построителе, и нажать сохранить. В стрПродукция три десятка значений, в Парам- штук восемьдесят, наверное. Я могу их запостить, но смысл? Это будет эпичный том страниц под сотню, вряд ли кому интересный. Думаю их лучше посмотреть в конфигураторе с живыми данными по продукции и имея в виду задачу. которая стоит. Что касается замысла творца, то он очень прост. Данные переменные содержат поля, необходимые для решения задач. upd. "стрПродукция" содержит поля продукции, к которой относится наша строка спецификации "Стр". Это есть во втором примере. Парам призван по сути весь контекст заказа передать на сервер. И может быть востребован если, например, мы хотим чтобы строки заказа влияли на цены материалов в соседней строке. Переменная Стр с ней всё ясно и понятно, а можно поподробнее про Переменная "стрПродукция" особенно про соответствие "Парам". В конфигурации километры кода и лопатить всю конфигурацию, чтобы понять замысел Творца, довольно проблематично. Хочется чётко понимать механизм работы, структуру переменных и логику работы. Изменено 4 мая, 2015 пользователем oknosoft
oknosoft Опубликовано: 4 мая, 2015 Автор Опубликовано: 4 мая, 2015 Чтобы не быть голословным, три картинки. Первая про стрПродукция, две последующие про Парам
V.N.T. Опубликовано: 4 мая, 2015 Опубликовано: 4 мая, 2015 (изменено) С вышеприведенными материалами понятно. А в чём принципиальное различие вышеприведенного механизма и механизма "корректировка спецификации" ? Я так понимаю в том, что через корректировку мы можем оперировать и строками продукции? И почему тогда не "запихнуть" функционал поля "Формула" "Расширения номенклатуры" в "корректировку спецификации" ? Изменено 4 мая, 2015 пользователем V.N.T.
oknosoft Опубликовано: 4 мая, 2015 Автор Опубликовано: 4 мая, 2015 Соглашусь, что пересечение у механизмов есть. Существуют задачи, которые можно решить и "корректировкой", и формулой материала. Можно выбирать, что удобнее. Про отличия. Начнем с того, что "корректировка" может полностью создавать спецификацию. Доставки, монтажи, подоконники и пр. В этом случае просто некуда писать "формулу". Корректировка настраивает спецификацию для конкретной продукции, а формула материала изначально привязана к материалу для всех продукций.
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас