Ошибка в обработке "ПодборЗатратПоУслугам" в типовой Бухгалтерии для бюджетных учреждений 6.2 (647)


В текущем на момент публикации релизе 647 конфигурации "Бухгалтерия для бюджетных учреждений 6.2" при заполнении документа "Списание затрат по услугам" наблюдается следующая ошибка: в режиме заполнения (F5) невозможно выбрать значение субконто, если тип субконто — подчиненный справочник.

 

Если на счете 401.10.х.х заведено субконто «Детализация ЭКР» (вид субконто «Детализация ЭКР», тип «Справочник.ДетализацияЭКР»), то, в режиме заполнения невозможно выбрать значение субконто. Открывается форма выбора без установки владельца. По кнопке F7 можно выбрать правильное значение с указанием владельца, но в таком случае выбранные значения присвоятся всем строкам. На иллюстрации пример, когда такой способ заполнения недопустим, и нужно явно задавать значения. В одной строке КОСГУ 180, в других 130.

Ошибка кроется в обработке «ПодборЗатратПоУслугам» в процедуре «ВыбратьСубконтоДебета»: 

Если ТипОбъекта = «Справочник» Тогда

       
Объект = СоздатьОбъект(ТипСубконто);

        Если Объект.Выбрать(«Выберите элемент», «ФормаСписка») = 0 Тогда

            Возврат 0;

        КонецЕсли;

        ТабУслуг.УстановитьЗначение(НомСтр,ИмяКол,Объект.ТекущийЭлемент());

 

Как видно, никаких проверок на наличие подчиненности не производится.

Исправленный вариант выглядит так:

     Если ТипОбъекта = «Справочник» Тогда

       //—dem

        Объект = СоздатьОбъект(ТипСубконто);

        ТипВладельца = Метаданные.Справочник(СтрЗаменить(ТипСубконто,«Справочник.»,«»)).Владелец;

        Если ПустоеЗначение(ТипВладельца)=0 Тогда

            СтрТипВладельца = «Справочник.»+ТипВладельца.Идентификатор;

            СпрВладелец = СоздатьОбъект(«Справочник.»+ТипВладельца.Идентификатор);

            Для а =1 По ТекСч.КоличествоСубконто() Цикл

                Если ТекСч.ВидСубконто(а).ТипСубконто()=СтрТипВладельца Тогда

                    СпрВладелец.НайтиЭлемент(ТабУслуг.ПолучитьЗначение(НомСтр,3+а));

                    Объект.ИспользоватьВладельца(СпрВладелец.ТекущийЭлемент());

                    Прервать;

                КонецЕсли;

            КонецЦикла;

        КонецЕсли;

         //—dem

        Если Объект.Выбрать(«Выберите элемент», «ФормаСписка») = 0 Тогда

            Возврат 0;

        КонецЕсли;

        ТабУслуг.УстановитьЗначение(НомСтр,ИмяКол,Объект.ТекущийЭлемент());

Буду рад, если кому-то пригодится.

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *