gifts2017

Работа с дополнительными характеристиками объектов

Опубликовал Валерий Гайдабура (director04) в раздел Программирование - Практика программирования

Универасальная подсистема использования дополнительных свойств и категорий объектов в типовых конфигурациях БП 2.0, БП 2.0 КОРП.
Думаю, взлетит на Комплексной Автоматизации, ЗУП и УПП...

Во многих типовых конфигурациях от 1С используются понятия дополнительных свойств и категорий объектов.

Данные категории позволяют, без внесения дополнительных изменений в конфигурацию, сущетвенно расширить возможности системы. Но в данной статье речь несколько о ином. А именно, как с помощью данных механизмов, ПРОГРАММНО расширить функциональность конфигурации с внесением МИНИМАЛЬНОГО количества изменений.

Для примера рассмотрим две прикладных задачи реализованные в конфигурации БП КОРП 2.0:

Задача 1. При редактировании документа "Списание с расчетного счета", необходимо, в зависимости от индивидуальных настроек пользователя, включать (отключать) автозаполнение поля "Назначение платежа".

Задача 2. При проведении множества расчетных документов, в зависимости от дополнительного свойства документа "Отражать в УСН", формировать (или отключать формирование) проводок по регистрам учета УСН.

Методика решения задач (на конфигурации Бухгалтерия предприятия, редакция 2.0 (2.0.29.9)

 Предварительно, для решения обоих задач, внесем в нашу конфигурацию небольшую доработку - новый общий модуль "РаботаСДополнительнымиХарактеристикамиОбъектов". Сделаем это путем объединения основной конфигурации с поставляемым файлом. 

Решение задачи №1

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

- теперь, в самом начале процедуры добавим следующую вставку

//-------------------  

// Автоформирование назначения платежа будет опционально
СписокХарактеристикПользователя = Новый СписокЗначений;
СписокХарактеристикПользователя.Добавить("ХарактеристикаРедактироватьНазначениеПлатежа", "Авторедактирование назначения платежа",ЛОЖЬ); // Параметр Ложь - не устанавливать флаг при автодобавлении характеристики

СтруктураХарактеристикПользователя = РаботаСДополнительнымиХарактеристикамиОбъектов.ПолучитьЗначениеБУЛЕВОЙХарактеристикиПользователя(СписокХарактеристикПользователя);

Если НЕ
СтруктураХарактеристикПользователя.ХарактеристикаРедактироватьНазначениеПлатежа Тогда
    Возврат;
КонецЕсли;
//-------------------

При исполнении данного кода, будет произведен поиск дополнительной характеристики текущего пользователя "Авторедактирование назначения платежа". В случае ее отсутствия, вышеупомянутая характеристика будет создана автоматически. Третий параметр функции определяет необходимость автоматической установки флага.

На основании значения данной характеристики, принимаем решение о выполнении дальнейших действий по редактированию поля "Назначения платежа"  

Проверка функционирования:

- Открыть любой документ "Списание с расчетного счета", изменить Вид операции. Назначение платежа меняться не должно.

- Открыть Сервис - Настройки пользователя. В группе СПЕЦИАЛИЗИРОВАННЫЕ, установить флаг "Авторедактирование назначения платежа". Повторить действия по редактированию документа "Списание с расчетного счета". Назначение платежа должно измениться.  

Таким образом, задача решена с минимальными трудозатратами...

 

Решение задачи №2

 

- находим наиболее удобное место для внесения изменений в конфигурацию. По-моему, это функция  "СформироватьСтруктуруШапкиДокумента" общего модуля конфигурации "ОбщегоНазначения". Данная процедура запускается на исполнение при проведении расчетных документов. Заменяем строку 1089 на следующую вставку

 // -------------------------------------------------------
// Необходимо учесть, что движения по УСН (доходы) отражаются, в некоторых организациях,
// не по всем документам. Это определяется:
// 1. дополнительной характеристикой организации
// 2. дополнительной характеристикой документа


// 1. определяем: используется ли по данной организции особый порядок учета УСН

ДополнительноеСвойство = РаботаСДополнительнымиХарактеристикамиОбъектов.НайтиСоздатьДополнительнуюКатегориюОбъекта(ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Организации, "Особый порядок УСН");

// Проверим, установленно ли дополнительное свойство Организации "Особый порядок УСН" (должно соответствовать принятой учетной политике)

ОсобыйПорядокУСН = РаботаСДополнительнымиХарактеристикамиОбъектов.ПроверитьУстановкуДополнительногоСвойстваТипаБулево(СтруктураШапкиДокумента.Организация, ДополнительноеСвойство);

// Массив определяет перечень документов с условным движением регистра "Книга учета дох.-расходов"
МассивУсловныхДокументов = Новый Массив;
МассивУсловныхДокументов.Добавить("ПоступлениеНаРасчетныйСчет");
МассивУсловныхДокументов.Добавить("СписаниеСРасчетногоСчета");
МассивУсловныхДокументов.Добавить("ПриходныйКассовыйОрдер");
МассивУсловныхДокументов.Добавить("РасходныйКассовыйОрдер");
Отражать_в_УСН = Истина;

Если
ОсобыйПорядокУСН И НЕ МассивУсловныхДокументов.Найти(СтруктураШапкиДокумента.ВидДокумента) = Неопределено Тогда
   
ДополнительноеСвойство = РаботаСДополнительнымиХарактеристикамиОбъектов.НайтиСоздатьДополнительнуюКатегориюОбъекта(ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документы,"Отражать в УСН");


// 2. Проверим, установленно ли дополнительное свойство документа "Отражать в УСН"

   
Отражать_в_УСН = РаботаСДополнительнымиХарактеристикамиОбъектов.ПроверитьУстановкуДополнительногоСвойстваТипаБулево(СтруктураШапкиДокумента.Ссылка, ДополнительноеСвойство);

КонецЕсли;

СтруктураШапкиДокумента.Вставить("ОтражатьВНалоговомУчетеУСНДоходы", Отражать_в_УСН);
// -------------------------- центр(-)-----------------------------

Проверка функционирования: 

- По организации, применяющей упрощенную систему налогообложения, провести любой документ "Поступление на расчетный счет".

- После проведения, у организации появился дополнительный реквизит "Особый порядок УСН" (см. рис. 2). Установим галочку

- У документа "Поступление на расчетный счет" появился дополнительный реквизит "Отражать в УСН" (см. рис.3). Его пока не устанавливаем.

- еще раз перепроведем выбранный документ "Поступление на расчетный счет". При этом, записи в книгу доходов не производится (см. рис 4)

- Если у документа установить флаг дополнительного реквизита "Отражать в УСН" (см. рис 5) и перепровести документ, то происходит запись в регистр учета УСН. (см. рис 6)

Таким образом, задача решена с минимальными трудозатратами 



 

 


Скачать файлы

Наименование Файл Версия Размер
Работа с дополнительными характеристиками 69
.cf 9,89Kb
30.11.11
69
.cf 9,89Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Mariya Cherkasskaya (mcher) 08.12.11 04:20
2. Дмитрий Баранов (Sunhare) 08.12.11 17:27
3. Ola_Z (Ola_z) 16.12.11 08:07
Спасибо за статью. Дополнительные свойства и категории очень пригодятся в программах по зарплате и кадром. Если у сотрудников задавать различные свойства, то можно получать различные отчеты, по любым дщанным.
4. Валерий Гайдабура (director04) 16.12.11 08:42
(3) Да, в ЗУП мы их тоже активно используем.