|
Получить ссылку открытого документа во внешней обработке | ☑ | ||
---|---|---|---|---|
0
Slavik_hak
19.01.18
✎
19:42
|
Подскажите, как получить ссылку из которого запускаем обработку??
Данный код внешней обработки работает через Файл/открыть, но если подключить обработку то сыпется на строчке ЭлементОбъект = Документссылка.ПолучитьОбъект(); Выручайте //В модуле формы Процедура ВыполнениеПроцедуры() Экспорт ЭлементОбъект = ДокументСсылка.ПолучитьОбъект(); ЭлементОбъект.НДФЛ.Очистить(); Для каждого СтрокаТЗ Из ЭлементОбъект.НачисленияУдержанияВзносы Цикл СтрокаТЗ.НДФЛ = СтрокаТЗ.Начислено * 0.13; СтрокаТЗ.КВыплате = СтрокаТЗ.Начислено - СтрокаТЗ.НДФЛ; КонецЦикла; //ЭлементОбъект.НДФЛ.Очистить(); ЭлементОбъект.Записать(); КонецПроцедуры; |
|||
1
Мимохожий Однако
19.01.18
✎
19:44
|
Сначала скажи что ты хочешь, а потом уже есть смысл обсуждать способ реализации.
|
|||
2
Мимохожий Однако
19.01.18
✎
19:46
|
Традиционно: платформа, конфигурация, колеса, стекло
|
|||
3
Slavik_hak
19.01.18
✎
19:47
|
Конфа ЗУП 3.1 Платформа новенькая 8.3.10
Хочу внешней обработкой перезаписать табличную часть документа |
|||
4
Мимохожий Однако
19.01.18
✎
19:50
|
(3) Документацию по БСП смотрел?
|
|||
5
Slavik_hak
19.01.18
✎
19:52
|
Ничего не нашел подходящего на сайте its смотрел
|
|||
6
Мимохожий Однако
19.01.18
✎
20:04
|
Какая версия БСП используется в твоей конфигурации?
https://its.1c.ru/db/bsp245doc#content:813:hdoc |
|||
7
Slavik_hak
19.01.18
✎
20:11
|
Вроде как 3.1.4.161
|
|||
8
Мимохожий Однако
19.01.18
✎
20:11
|
Есть регистр сведений Версии библиотек
|
|||
9
Мимохожий Однако
19.01.18
✎
20:13
|
Возьми демо конфигурации наиболее близой БСП. Возьми оттуда пример обработки табличной части или заполнения объекта
|
|||
10
Slavik_hak
19.01.18
✎
20:13
|
Я там и посмотрел, только называется "Версии подсистем"
|
|||
11
Мимохожий Однако
19.01.18
✎
20:17
|
(10) (7) Не верю
|
|||
12
Slavik_hak
19.01.18
✎
20:23
|
https://yadi.sk/i/cLN5B1T93RcBPP ссылка на картинку
|
|||
13
Мимохожий Однако
19.01.18
✎
20:24
|
(11) 2.4.4.106
|
|||
14
Slavik_hak
19.01.18
✎
20:42
|
У меня эта команда определена в модуле формы
&НаКлиенте Процедура ВыполнитьКоманду(Команда, ОбъектыНазначения) Экспорт Для каждого Элемент из ОбъектыНазначения Цикл // ЭлементОбъект = Элемент.ПолучитьОбъект(); // // Для каждого СтрокаТЗ из ЭлементОбъект.НачисленияУдержанияВзносы Цикл // СтрокаТЗ.НДФЛ = СтрокаТЗ.Начислено * 0.13; // //Сообщить(СтрокаТЗ.НДФЛ);//Тест //ЭлементОбъект.Записать(); // Для каждого СтрокаНДФЛ Из ЭлементОбъект.НДФЛ Цикл // СтрокаНДФЛ.Налог = СтрокаТЗ.НДФЛ; // Сообщить(СтрокаТЗ.НДФЛ); // КонецЦИкла; // // КонецЦикла; // //ЭлементОбъект.НДФЛ.Очистить(); // ЭлементОбъект.Записать(); // //ЭлементОбъект.Обновить(); КонецЦикла; Сообщить("в"); ВыполнитьКомандуНаСервере(); //Сообщить("ВыполнитьКоманду"); КонецПроцедуры |
|||
15
Мимохожий Однако
19.01.18
✎
20:45
|
Покажи процедуры регистрации обработки в модуле обработки (не формы)
|
|||
16
Slavik_hak
19.01.18
✎
20:47
|
Эта процедура с директивой &НаКлиенте и в нее не попадает точка останова, причем код выполняется.
А если я поменяю директиву компиляции на &Насервере, то точка останова ставится, но параметр ОбъектыНазначения пустой. как с этим бороться |
|||
17
Slavik_hak
19.01.18
✎
20:48
|
//Модуль формы
Функция СведенияОВнешнейОбработке() Экспорт ДокументНазначение = Новый Массив ; ДокументНазначение.Добавить("Документ.РегистрацияПрочихДоходов") ; ПараметрыОбработки = Новый Структура ; ПараметрыОбработки.Вставить("Вид","ЗаполнениеОбъекта"); ПараметрыОбработки.Вставить("Назначение", ДокументНазначение); ПараметрыОбработки.Вставить("Наименование","Перерассчитать НДФЛ без вычетов"); ПараметрыОбработки.Вставить("Версия","ЗУП 3.1.4.161"); ПараметрыОбработки.Вставить("Информация","Перерассчитать НДФЛ без вычетов сотрудников"); ПараметрыОбработки.Вставить("БезопасныйРежим",Истина); КомандыОбработки = ПолучитьКомандыОбработки () ; ДобавитьКомандуОбработки (КомандыОбработки, "Перерассчитать НДФЛ без вычетов","ВыполнитьКоманду","ВызовКлиентскогоМетода",Ложь,) ; ПараметрыОбработки.Вставить("Команды", КомандыОбработки); Возврат ПараметрыОбработки; КонецФункции Функция ПолучитьКомандыОбработки () КомандыОбработки = Новый ТаблицаЗначений ; КомандыОбработки.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")) ; КомандыОбработки.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")) ; КомандыОбработки.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")) ; КомандыОбработки.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")) ; КомандыОбработки.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")) ; Возврат КомандыОбработки; КонецФункции Процедура ДобавитьКомандуОбработки(КомандыОбработки, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НовКоманда = КомандыОбработки.Добавить() ; НовКоманда.Представление = Представление ; НовКоманда.Идентификатор = Идентификатор ; НовКоманда.Использование = Использование ; НовКоманда.ПоказыватьОповещение = ПоказыватьОповещение ; НовКоманда.Модификатор = Модификатор ; КонецПроцедуры |
|||
18
Мимохожий Однако
19.01.18
✎
21:00
|
Почему используешь клиентский метод, а не серверный?
|
|||
19
Slavik_hak
19.01.18
✎
21:07
|
потому что в серверном невозможно поставить точку останова, все выполняется, по отладить это дело невозможно,
|
|||
20
Slavik_hak
19.01.18
✎
21:09
|
Прошу прощения. На клиенте точка останова стивится, но ОбъектыНазначения пусты, а в серверном варианте все выполняется, но точка не ставится и отладка не возможны
|
|||
21
0xFFFFFF
19.01.18
✎
21:18
|
(19) енто потому, что отладку на сервере отдельно включать надо.
|
|||
22
Мимохожий Однако
19.01.18
✎
21:20
|
(21) Точно. Или отлаживай код на файловой копии
|
|||
23
Slavik_hak
19.01.18
✎
21:37
|
это моя файловая база, на домашнем ноуте
|
|||
24
h-sp
19.01.18
✎
21:47
|
(23) ПолучитьОбъект (GetObject)
Синтаксис: ПолучитьОбъект() Возвращаемое значение: Тип: ДокументОбъект.<Имя документа>; Неопределено. Неопределено - объекта в базе нет (например, при обмене данными или после непосредственного удаления объекта, на который есть ссылки). Описание: Получает по ссылке объект для чтения, изменения, добавления и удаления документа. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). читал?? |
|||
25
Slavik_hak
19.01.18
✎
22:18
|
(24) Так у меня же в вопросе указан код, я там именно этот метод использую, но проблема в том что когда я подключаю внешнюю обработку у меня нет ссылки на документ
|
|||
26
h-sp
19.01.18
✎
22:28
|
(25) так вы на клиенте или на сервере? Стоит там слово @наклиенте?
|
|||
27
Slavik_hak
19.01.18
✎
22:32
|
так как она тогда выполняется и точка останова ставится при компиляции &наКлиенте
|
|||
28
h-sp
19.01.18
✎
22:38
|
(27) ну тогда не будет работать, смотри г(24), ПолучитьОбьект на клиенте не работает
|
|||
29
h-sp
19.01.18
✎
22:40
|
Точка останова прекрасно ставится на сервере, чего-то вы там судите
|
|||
30
Шурик71
19.01.18
✎
23:24
|
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт ........ текОбъект = ВладелецФормы.Объект; //вот тут он ........ |
|||
31
Мимохожий Однако
20.01.18
✎
07:54
|
(14) Посмотри отладчиком переменную Элемент. Там должен быть объект или ссылка на него.
|
|||
32
Gucci76
20.01.18
✎
11:41
|
Доброго времени суток.
Думаю мой вопрос похож Можно ли из внешней печатной формы открыть другую обработку? И в новую обработку передать ссылку на документ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |