Обучаловка як з мінімальними витратами зробити - красивий - прайс

Розглянемо банальну ситуацію.
.
Продажу (відділу) стрельнуло в голову зробити супер-пупер прайс - мовляв, від цього продажу попруть в гору, грошей фірмі обломиться неміряно, програмісту додому канал в 2 метри завтовшки заведемо - але треба швидко-швидко зробити. причому ми самі поки толком не знаємо. типу ось тут щоб було жирним кольором, а ось цей товар обов'язково червоним, а ось ці товари - синій шрифт на жовтому фоні і ін.
.
Городити доп.реквізіти в довідник товарів не будемо - хіба мало що стрельне в голову продажникам через тиждень, знову ж прапорців не напасешся. знову ж будуть смикати зробити ще це, а це прибрати і т.д.
.
Тому робимо не складно, а суперпросто: забульбенім універсальний інструментарій, і нехай продажу, користуючись ним - як хочуть, так і "розфарбовують".
.
Для цього застосуємо чудовий механізм властивостей, реалізований в типових ТіС (на прикладі ред.9.2)
.
Розглянемо реалізацію даного завдання на прикладі простої вимоги: якийсь довільний перелік товарів виводити в прайсі жирним шрифтом.
.
1. виробити систему позначень: якщо у товару властивість "ВиделітьВпрайсе" приймає значення "Так" (відмінне від нуля) - ця позиція підлягає виділенню в прайсі. При цьому "нульове" значення властивості (все що відмінно від "Так" або відсутність такої властивості у товару взагалі) означає звичайну позицію в прайсі.
.
2. Дамо інструментарій для швидкого заповнення / перемикання даного властивості у потрібних товарів (на базі типової обробки установки властивостей номенклатури / контрагентів - трохи її спрощуємо / модифікуємо в частині заточки під це завдання: перемикання так / ні)
.
3. Обов'язково передбачимо механізм протоколювання дій по п.2 - в основному, щоб "відмазатися" від наїздів обурених продажників по типу "якого. Ця позиція виділена?" - в принципі це питання може вирішуватися багатьма методами і протоколювання, насправді, останній з них - типу рятувального круга на крайній випадок. Протокол пишемо в звичайний текстовий файл з ім'ям за шаблоном ГГГГММДДЧЧММ.txt і кладемо в спеціальний папочку / подпапочку, де у нас зберігаються всілякі протоколи.
Наприклад, в даний файлик пишемо:
МенеджерПоПрайсам 30.11.05 16:36:56
НІ -> ТАК 00009469 Пензітал табл.п.о №30
НІ -> ТАК 00001312 Флемоксин Солютабл. табл.раствор.125мг №20
Разом: видно хто і коли зробив маніпуляції з розфарбуванням файлу
.
4. При формуванні типового прайса (або навіть нетипового - ідея та ж сама) зробимо вставочку типу:
//
Запит = СоздатьОб'ект ( "Запит");
ТекстЗапроса =
"// | Обробляти НеПомеченниеНаУдаленіе;
| ВідСвойства = Справочнік.СвойстваНоменклатури.ВідСвойства.Наіменованіе;
| ЗначеніеСвойства = Справочнік.СвойстваНоменклатури.ЗначеніеСвойства.Наіменованіе;
| Номенклатура = Справочнік.СвойстваНоменклатури.Владелец;
| Угруповання Номенклатура;
| Умова (Знайти (ВРЕГ (ВідСвойства), "" ВИДЕЛІТЬВПРАЙСЕ "") <> 0);
| Умова (Знайти (ВРЕГ (ЗначеніеСвойства), "" ТАК ​​"") <> 0); ";

Якщо Запрос.Виполніть (ТекстЗапроса) = 0
Тоді Повернення;
КонецЕсли;

ТЗВиделіть = СоздатьОб'ект ( "ТабліцаЗначеній");
Запрос.Вигрузіть (ТЗВиделіть, 1,0);
.
6. Далі, при порядковому виведенні прайса шукаємо поточний товар в таблиці ТЗВиделіть, знайшли - виводимо жирним шрифтом, не знайшли - як зазвичай.
.
На що слід звернути увагу при використанні даної методики?
а) Слід ретельно продумати "систему умовних позначень" для прайса і обмежити коло осіб, які можуть модифікувати довідники видів властивостей і самі значення властивостей.
б) запропонована методика - досить універсальна і без особливих витрат може "клонувати" на родинні завдання. Але! За рахунок універсальності - працювати буде повільніше. Тому - спочатку оцінюємо співвідношення "витрати програміста / швидкість роботи програми" і реалізуємо те, що вважаємо більш підходящим.
.
Зрозуміло, що даний приклад - найпростіше, що можна придумати, злегка "розширивши" розглянуту схему можна побудувати досить універсальну программуліна. Основне при цьому - "хитрість" програміста. Типу: можна значення властивостей кодувати "прямо", тобто задавши "значення = font [bold] color [255000000]" і написавши в коді щось типу "застосувати до виведеної рядку поточне значення властивості" автоматом отримаємо жирні червоні літери на білому фоні без зайвих "якщо-то-інакше".

Схожі статті