Внешняя обработка табличной части документа (управляемые)

1. morrex 3 08.09.17 09:36 Сейчас в теме
Есть внешняя обработка табличной части документа "Начисление оценочных обязательств" для ЗУП3.1
Подскажите пожалуйста, по какой причине может не открываться форма внешней обработки?

Даже скачанная и подключенная https://infostart.ru/public/624863/ именно в этом документе не открывается.

Заранее спасибо за уделенное время
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Redinternational 86 08.09.17 09:44 Сейчас в теме
Я думаю стоит обратиться к автору данной обработки.
3. konyashkingn 2 08.09.17 09:47 Сейчас в теме
А вы в какой конфигурации открываете данную обработку?
4. morrex 3 08.09.17 09:50 Сейчас в теме
эта обработка указана для примера - открываю в ЗУП 3.1. Пишу свою обработку только не по изменению подразделений, а по изменению проводок. Но первое что не выполняется - не открывается форма, где расположена кнопка с командой по обработке.
6. Denis_CFO 49 08.09.17 09:52 Сейчас в теме
(4)
эта обработка указана для примера - открываю в ЗУП 3.1. Пишу свою обработку только не по изменению подразделений, а по изменению проводок.
так сегодня пятница, все телепаты на выходном.....
Код покажи...
5. morrex 3 08.09.17 09:52 Сейчас в теме
В документе "Отражение зарплаты" открывается, а именно в "Начислении оценочных" не открывается
7. morrex 3 08.09.17 09:55 Сейчас в теме
даже без кода - когда есть только сведения о внешней обработке в модуле обработки и создана форма обработки
8. Denis_CFO 49 08.09.17 09:57 Сейчас в теме
(7)
СведенияОВнешнейОбработке()
покажи
9. morrex 3 08.09.17 09:59 Сейчас в теме
Функция СведенияОВнешнейОбработке() Экспорт
  ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.НачислениеОценочныхОбязательствПоОтпускам");
    ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Наименование", "Заполнить Оценочные ");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", "Дополнительная обработка табличной части к документу Оценочные");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд,
    "Заполнить Оценочные "+ПараметрыРегистрации.Версия,
    "Заполнить Оценочные "+ПараметрыРегистрации.Версия,
    "ОткрытиеФормы", Истина);
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
КонецФункции

Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
 НоваяКоманда = ТаблицаКоманд.Добавить();
 НоваяКоманда. Представление = Представление;
 НоваяКоманда. Идентификатор= Идентификатор;
 НоваяКоманда. Использование= Использование;
 НоваяКоманда. ПоказыватьОповещение= ПоказыватьОповещение;
 НоваяКоманда. Модификатор= Модификатор;
КонецФункции

//процедура, которая подготавливает структуру таблицы команд

Функция ПолучитьТаблицуКоманд()

   // Создадим пустую таблицу команд и колонки в ней
   Команды = Новый ТаблицаЗначений;

   // Как будет выглядеть описание печатной формы для пользователя
   Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

   // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
   Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

   // Тут задается, как должна вызваться команда обработки
   // Возможные варианты:
   // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
   // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
   // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
   Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

   // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
   Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

   // Для печатной формы должен содержать строку ПечатьMXL 
   Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
   
   Возврат Команды;
   
КонецФункции
Показать
10. Denis_CFO 49 08.09.17 10:04 Сейчас в теме
(9)
"Заполнить Оценочные "+ПараметрыРегистрации.Версия,
Идентификатор поправь, должен быть без пробелов.
11. morrex 3 08.09.17 10:09 Сейчас в теме
спасибо, поправлено. Но форма так и не открывается
12. Denis_CFO 49 08.09.17 10:16 Сейчас в теме
(11) Выложи уже свою нетленку, что-то непонятно пока.
14. held88 59 08.09.17 10:27 Сейчас в теме
(11) Это должно быть как то так

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
	
	    ЭтаФорма.Открыть();		
	
КонецПроцедуры


А при Виде ОбработкаОбъектов просто так форма не открывается, несмотря на то что в ней команда, которая выполняется.
13. held88 59 08.09.17 10:19 Сейчас в теме
ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");

Ну как бы а с чего должна она открываться? Где код который ее открывает? Сам код команды выложи.
15. morrex 3 08.09.17 10:43 Сейчас в теме
//в модуле формы


&НаСервере
Процедура ИзменитьПроводкиНаСервере()
	// Вставить содержимое обработчика.
КонецПроцедуры

&НаКлиенте
Процедура ИзменитьПроводки(Команда)
	ИзменитьПроводкиНаСервере();
	
	Для каждого  ТекущаяСтрока из ВладелецФормы.Объект.ОценочныеОбязательстваПоСотрудникам Цикл
		//стрДок = ВладелецФормы.Объект.НачисленнаяЗарплатаИВзносы.Изменить() ;
		Проводка =  Строка(ТекущаяСтрока.СпособОтраженияЗарплатыВБухучете) ;
		Если Лев(Проводка, 4) = "Дт20" Тогда
			ТекущаяСтрока.СпособОтраженияЗарплатыВБухучете = НайтиПроводку(ТекущаяСтрока.Сотрудник,Проводка) ;//Справочники.СпособыОтраженияЗарплатыВБухУчете.НайтиПоНаименованию("Дт 91 Единоврем. выплаты неработающим пенсионерам  Кт70") ;
		КонецЕсли ;	
		//Сообщить(ТекущаяСтрока.Количество) ;
	КонецЦикла ;
	ЭтаФорма.Закрыть();
	ВладелецФормы.Модифицированность = Истина
	
КонецПроцедуры


&НаСервере
Функция НайтиПроводку(Сотрудник,Проводка)
	Запрос = Новый Запрос();
	Запрос.Текст =  "ВЫБРАТЬ
	                |	СотрудникиДополнительныеРеквизиты.Ссылка КАК Ссылка,
	                |	СотрудникиДополнительныеРеквизиты.Значение КАК Значение
	                |ИЗ
	                |	Справочник.Сотрудники.ДополнительныеРеквизиты КАК СотрудникиДополнительныеРеквизиты
	                |ГДЕ
	                |	СотрудникиДополнительныеРеквизиты.Ссылка = &Ссылка
	                |	И СотрудникиДополнительныеРеквизиты.Свойство = &Свойство" ;
	Запрос.УстановитьПараметр("Ссылка", Справочники.Сотрудники.НайтиПоНаименованию(Сотрудник).Ссылка);
	Запрос.УстановитьПараметр("Свойство",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ШПЗ (Сотрудники)")) ;
	рез = Запрос.Выполнить();
	выб = рез.Выбрать();
	//Сообщить(Строка(Сотрудник)) ;
	//Сообщить(Строка(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ШПЗ (Сотрудники)"))) ;
	Пока выб.Следующий() Цикл
		//Сообщить(Строка(выб.Ссылка)) ;
		//Сообщить(Строка(выб.Значение)) ;
		ПроводкаНовая = Справочники.СпособыОтраженияЗарплатыВБухУчете.НайтиПоНаименованию("Дт"+Строка(выб.Значение)+Сред(Проводка, 5))  ;
	КонецЦикла ;
	
	Возврат ПроводкаНовая ;
КонецФункции
Показать
16. morrex 3 08.09.17 10:45 Сейчас в теме
похожая обработка в документе "Отражение зарплаты" работает
17. Denis_CFO 49 08.09.17 10:46 Сейчас в теме
(16)
похожая обработка в документе "Отражение зарплаты" работает
потому что похожая. А где ОткрытьФорму();
18. morrex 3 08.09.17 10:50 Сейчас в теме
подскажите тогда пожалуйста, в какой момент надо вставлять ОткрытьФорму()? в модуль объекта?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот