10 янв. 2014 г.

Программирование за 21 день - Complete!

Наконец то дошли руки доделать курс "Программирование в 1С - за 21 день". Итого полтора месяца со дня получения первого письма :) Для новичка курс вообще самое то, чтобы быстро пробежаться по основным объектам. А я и с новой платформой поработал, и несколько фишек для себя уяснил. Так что тоже не зря. Еще понравились новые возможности платформы в плане написания кода, все эти подсветки, всплывающие подсказки (теперь с параметрами функций и процедур :))  и прочее. Так что, пилите баги, господа разработчики платформы, ждемс.
А у меня, в итоге, получилась база с такими вот котами.

Не обошлось без казусов. При идентичном коде расчета оклада в обработке проведении на платформе 8.3.3.721 не высчитывался фактический период действия. В итоге, вылечилось через реструктуризацию таблиц в тестировании и исправлении ИБ.


После, на всякий случай, обновил платформу до 8.3.4.389. Сразу бросилось в глаза цветовое решение панели разделов :) Получше будет, да.


Больше всего доставили бизнес-процессы, поскольку особо с ними не работаю. Поэтому позволил себе небольшие импровизации. Для процесса "Настойчивые продажи" добавил порог скидки и проверку на превышение этого порога. А так же автоматическое увеличение процента скидки при выполнении задачи "Снижение цен на 1%".


Процедура КлиентСогласенПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
 
 Результат = Согласовано;
 
КонецПроцедуры

Процедура СнижениеЦенПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ)
 
 Скидка = Скидка + 1;
 Записать();
 ОбщиеКлиентСервер.СообщитьПользователю("Контрагенту " + Контрагент.Наименование + " предложена скидка " + Строка(Скидка));
 
КонецПроцедуры

Процедура ПределСкидкиДостигнутПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
 // Вставить содержимое обработчика.
 
 Результат = Скидка >= СкидкаПредел;
 
КонецПроцедуры 
Для процесса "Тестирование при приеме" при выполнении задачи "Заполнение анкеты" значимые реквизиты заполняются из соответствующих реквизитов задачи.
Процедура ТестАдминистрированиеПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
 
 Результат = Администрирование1С;
 
КонецПроцедуры

Процедура ТестПрограммированиеПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)
 
 Результат = Программирование1С;
 
КонецПроцедуры

Процедура ЗаполнениеАнкетыПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ)
 // Вставить содержимое обработчика.
 
 Администрирование1С = Задача.Администрирование1С;
 Программирование1С = Задача.Программирование1С;
 Записать();
 
КонецПроцедуры
 
В самой задаче в форме эти реквизиты отображаются на форме в зависимости от текущей точки маршрута.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
 
 Элементы.ГруппаАнкетирование.Видимость = Объект.ТочкаМаршрута = БизнесПроцессы.ТестированиеПриПриеме.ТочкиМаршрута.ЗаполнениеАнкеты;
 
КонецПроцедуры
 
Моя выгрузка (379 КБ), а так же кошачьи иконки.

1 комментарий:

  1. Какое огромное спасибо!!!! Я сижу, мозги ломаю почему при расчете оклада "Норма" и "Факт" не совпадаю - а тут Ваша статья!!!! Подтверждаю ту же проблему и на платформе 8.3.4.408, и лечится так же !

    ОтветитьУдалить