Имя: Пароль:
1C
1С v8
ЗкБУ 8.2 начисление-основание
0 valent-jedi
 
06.05.13
17:04
Подскажите, пожалуйста:
если создавать зарплату к выплате на основе разового начисления, то появляется реквизит документ-основание "разовое начисление", который можно использовать в запросах и так далее. А когда создаешь зарплату к выплате на основе документа "начисление зарплаты", этот реквизит не заполняется и на форме его не видно. Я хотел бы его вывести. Можно это как-нибудь сделать не изменяя конфигурацию, или придется лезть в типовой код? И если все-таки придется, может, кто подскажет, как это сделать наиболее быстро и безболезненно?
1 IBTM
 
06.05.13
17:10
(0) только дорабатывать.

сам начни, там посмотрим.
2 valent-jedi
 
06.05.13
19:24
Интересную вещь обнаружил:
в модуле обработки СозданиеДокументовЗарплатаКВыплате есть функция:

Функция СоздатьНовыйДокументПоОснованию(Основание, Дата, СтатьяФинансирования, КОСГУ)
   
   ЗарплатаКВыплате = Документы.ЗарплатаКВыплатеОрганизаций.СоздатьДокумент();
   
   // Общие реквизиты
   ЗаполнениеДокументовПереопределяемый.ЗаполнитьШапкуДокумента(ЗарплатаКВыплате, глЗначениеПеременной("глТекущийПользователь"));
   ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЗарплатаКВыплате, Основание);
   ЗарплатаКВыплате.Дата = Дата;
   
   // Источники финансирования
   ЗарплатаКВыплате.СтатьяФинансирования    = СтатьяФинансирования;
   ЗарплатаКВыплате.КОСГУ                    = КОСГУ;
   
   // Параметры расчета
   ЗарплатаКВыплате.ГруппаДоговоров   = Перечисления.ГруппыВидовДоговоровСФизЛицами.Все;
   ЗарплатаКВыплате.ХарактерВыплаты   = ХарактерВыплаты;
   ЗарплатаКВыплате.ДокументОснование = Основание.Ссылка;
   
   // Настройки расчета
   ЗарплатаКВыплате.ПроцентВыплаты                    = ПроцентВыплаты;
   ЗарплатаКВыплате.ДнейНеВыплаты                    = ДнейНеВыплаты;
   ЗарплатаКВыплате.ПредварительныйУчетУдержаний    = ПредварительныйУчетУдержаний;
   ЗарплатаКВыплате.Округление                        = Округление;
   
   // Специфичные для способа заполнения реквизиты
   ЗарплатаКВыплате.ПериодРегистрации    = ПолучитьПериодРегистрацииПоОснованию(Основание.Ссылка);
   
   Возврат(ЗарплатаКВыплате)
   
КонецФункции

Почему-то строчка ЗарплатаКВыплате.ДокументОснование = Основание.Ссылка; не отрабатывает, то есть ЗарплатаКВыплате.ДокументОснование ничего не присваивается, хотя переменная Основание.Ссылка заполнена корректно.
3 valent-jedi
 
06.05.13
19:45
строчка

ЗарплатаКВыплате.ДокументОснование = Основание.Ссылка;

не отрабатывает, если Основание.Ссылка - начисление зарплаты. Если разовое начисление, то все нормально проходит. Странно, не могу пока отловить.
4 hhhh
 
06.05.13
20:00
ну тип реквизита ДокументОснование озвучь.
5 valent-jedi
 
06.05.13
20:12
(4)
ДокументСсылка.НачислениеЕдиновременныхПособийЗаСчетФСС, ДокументСсылка.НДФЛВозвратНалога, ДокументСсылка.ПремииРаботниковОрганизаций, ДокументСсылка.РегистрацияРазовыхНачисленийРаботниковОрганизаций

О, спасибо большое! Сам до этого бы не додумался, наверное.

Сейчас вроде все работает. Что же я сделал с документом ЗарплатаКВыплатеОрганизаций:
1) У реквизита ДокументОснование добавил тип данных ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций к тем, что там уже были.

2)Форма документа ЗарплатаКВыплатеОрганизаций, процедура ДокументОснованиеНачалоВыбора(Элемент, СтандартнаяОбработка), добавил строки после 632-й:

ИначеЕсли ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Зарплата Тогда
       ФормаВыбора = Документы.НачислениеЗарплатыРаботникамОрганизаций.ПолучитьФормуВыбора(,Элемент);

3) Общий модуль ЗарплатаКВыплатеОрганизацийПереопределяемый, функция ТипОснованияПоХарактеруВыплаты(ХарактерВыплаты) Экспорт добавил строчки после 1292-й:

ИначеЕсли ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Зарплата Тогда
       ТипОснования = Тип("ДокументСсылка.НачислениеЗарплатыРаботникамОрганизаций")

Вроде все работает, прямо как я хотел.