Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Получить ссылку открытого документа во внешней обработке

Получить ссылку открытого документа во внешней обработке
Я
   Slavik_hak
 
19.01.18 - 19:42
Подскажите, как получить ссылку из которого запускаем обработку??
Данный код внешней обработки работает через Файл/открыть, но если подключить обработку то сыпется на строчке ЭлементОбъект = Документссылка.ПолучитьОбъект();
Выручайте
//В модуле формы 

Процедура ВыполнениеПроцедуры() Экспорт
    
    ЭлементОбъект = ДокументСсылка.ПолучитьОбъект();    
    
    ЭлементОбъект.НДФЛ.Очистить();    
    Для каждого СтрокаТЗ Из ЭлементОбъект.НачисленияУдержанияВзносы Цикл
        СтрокаТЗ.НДФЛ = СтрокаТЗ.Начислено * 0.13; 
        СтрокаТЗ.КВыплате = СтрокаТЗ.Начислено - СтрокаТЗ.НДФЛ;
    КонецЦикла;
    //ЭлементОбъект.НДФЛ.Очистить();        

    ЭлементОбъект.Записать();
КонецПроцедуры;
 
 
   МимохожийОднако
 
1 - 19.01.18 - 19:44
Сначала скажи что ты хочешь, а потом уже есть смысл обсуждать способ реализации.
   МимохожийОднако
 
2 - 19.01.18 - 19:46
Традиционно: платформа, конфигурация, колеса, стекло
   Slavik_hak
 
3 - 19.01.18 - 19:47
Конфа ЗУП 3.1 Платформа новенькая 8.3.10
Хочу внешней обработкой перезаписать табличную часть документа
   МимохожийОднако
 
4 - 19.01.18 - 19:50
(3) Документацию по БСП смотрел?
   Slavik_hak
 
5 - 19.01.18 - 19:52
Ничего не нашел подходящего на сайте its  смотрел
   МимохожийОднако
 
6 - 19.01.18 - 20:04
Какая версия БСП используется в твоей конфигурации?
https://its.1c.ru/db/bsp245doc#content:813:hdoc
   Slavik_hak
 
7 - 19.01.18 - 20:11
Вроде как 3.1.4.161
   МимохожийОднако
 
8 - 19.01.18 - 20:11
Есть регистр сведений Версии библиотек
   МимохожийОднако
 
9 - 19.01.18 - 20:13
Возьми демо конфигурации наиболее близой БСП. Возьми оттуда пример обработки табличной части или заполнения объекта
   Slavik_hak
 
10 - 19.01.18 - 20:13
Я там и посмотрел, только называется "Версии подсистем"
 
 Рекламное место пустует
   МимохожийОднако
 
11 - 19.01.18 - 20:17
(10) (7) Не верю
   Slavik_hak
 
12 - 19.01.18 - 20:23
https://yadi.sk/i/cLN5B1T93RcBPP ссылка на картинку
   МимохожийОднако
 
13 - 19.01.18 - 20:24
(11) 2.4.4.106
   Slavik_hak
 
14 - 19.01.18 - 20:42
У меня эта команда определена в модуле формы 
&НаКлиенте
Процедура ВыполнитьКоманду(Команда, ОбъектыНазначения) Экспорт
    
    Для каждого Элемент из ОбъектыНазначения Цикл
//        ЭлементОбъект = Элемент.ПолучитьОбъект();

//        
//                Для каждого  СтрокаТЗ из ЭлементОбъект.НачисленияУдержанияВзносы Цикл

//            СтрокаТЗ.НДФЛ = СтрокаТЗ.Начислено * 0.13;  
//            //Сообщить(СтрокаТЗ.НДФЛ);//Тест

//ЭлементОбъект.Записать();

//            Для каждого СтрокаНДФЛ Из ЭлементОбъект.НДФЛ Цикл

//                  СтрокаНДФЛ.Налог =  СтрокаТЗ.НДФЛ;
//                  Сообщить(СтрокаТЗ.НДФЛ);

//                КонецЦИкла;
//            

//            КонецЦикла;
//            //ЭлементОбъект.НДФЛ.Очистить();


//        ЭлементОбъект.Записать();

//        //ЭлементОбъект.Обновить();

КонецЦикла;
                Сообщить("в");
    ВыполнитьКомандуНаСервере();
    //Сообщить("ВыполнитьКоманду");

КонецПроцедуры
   МимохожийОднако
 
15 - 19.01.18 - 20:45
Покажи процедуры регистрации обработки в модуле обработки (не формы)
   Slavik_hak
 
16 - 19.01.18 - 20:47
Эта процедура с директивой &НаКлиенте и в нее не попадает точка останова, причем код выполняется.
А если я поменяю директиву компиляции на &Насервере, то точка останова ставится, но параметр ОбъектыНазначения пустой. как с этим бороться
   Slavik_hak
 
17 - 19.01.18 - 20:48
//Модуль формы

Функция СведенияОВнешнейОбработке() Экспорт
    
    ДокументНазначение = Новый Массив ;
    ДокументНазначение.Добавить("Документ.РегистрацияПрочихДоходов") ;
    
    ПараметрыОбработки = Новый Структура ;
    ПараметрыОбработки.Вставить("Вид","ЗаполнениеОбъекта");
    ПараметрыОбработки.Вставить("Назначение", ДокументНазначение);
    ПараметрыОбработки.Вставить("Наименование","Перерассчитать НДФЛ без вычетов");
    ПараметрыОбработки.Вставить("Версия","ЗУП 3.1.4.161");
    ПараметрыОбработки.Вставить("Информация","Перерассчитать НДФЛ без вычетов сотрудников");
    ПараметрыОбработки.Вставить("БезопасныйРежим",Истина);
    
    КомандыОбработки = ПолучитьКомандыОбработки () ;
    ДобавитьКомандуОбработки (КомандыОбработки, "Перерассчитать НДФЛ без вычетов","ВыполнитьКоманду","ВызовКлиентскогоМетода",Ложь,) ;
    
    ПараметрыОбработки.Вставить("Команды", КомандыОбработки);
    
    Возврат ПараметрыОбработки;
    
КонецФункции

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

Процедура ДобавитьКомандуОбработки(КомандыОбработки, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НовКоманда = КомандыОбработки.Добавить() ;
    НовКоманда.Представление = Представление ;
    НовКоманда.Идентификатор = Идентификатор ;
    НовКоманда.Использование = Использование ;
    НовКоманда.ПоказыватьОповещение = ПоказыватьОповещение ;
    НовКоманда.Модификатор = Модификатор ;
КонецПроцедуры
   МимохожийОднако
 
18 - 19.01.18 - 21:00
Почему используешь клиентский метод, а не серверный?
   Slavik_hak
 
19 - 19.01.18 - 21:07
потому что в серверном невозможно поставить точку останова, все выполняется, по отладить это дело невозможно,
   Slavik_hak
 
20 - 19.01.18 - 21:09
Прошу прощения. На клиенте точка останова стивится, но ОбъектыНазначения пусты, а в серверном варианте все выполняется, но точка не ставится и отладка не возможны
   0xFFFFFF
 
21 - 19.01.18 - 21:18
(19) енто потому, что отладку на сервере отдельно включать надо.
   МимохожийОднако
 
22 - 19.01.18 - 21:20
(21) Точно. Или отлаживай код на файловой копии
   Slavik_hak
 
23 - 19.01.18 - 21:37
это моя файловая база, на домашнем ноуте
   h-sp
 
24 - 19.01.18 - 21:47
(23) ПолучитьОбъект (GetObject)
Синтаксис:

ПолучитьОбъект()
Возвращаемое значение:

Тип: ДокументОбъект.<Имя документа>; Неопределено.
Неопределено - объекта в базе нет (например, при обмене данными или после непосредственного удаления объекта, на который есть ссылки).
Описание:

Получает по ссылке объект для чтения, изменения, добавления и удаления документа.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

читал??
   Slavik_hak
 
25 - 19.01.18 - 22:18
(24) Так у меня же в вопросе указан код, я там именно этот метод использую, но проблема в том что когда я подключаю внешнюю обработку у меня нет ссылки на документ
   h-sp
 
26 - 19.01.18 - 22:28
(25) так вы на клиенте или на сервере? Стоит там слово @наклиенте?
   Slavik_hak
 
27 - 19.01.18 - 22:32
так как она тогда выполняется и точка останова ставится при компиляции &наКлиенте
   h-sp
 
28 - 19.01.18 - 22:38
(27) ну тогда не будет работать, смотри г(24), ПолучитьОбьект на клиенте не работает
   h-sp
 
29 - 19.01.18 - 22:40
Точка останова прекрасно ставится на сервере, чего-то вы там судите
   Шурик71
 
30 - 19.01.18 - 23:24
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
    
........

   текОбъект = ВладелецФормы.Объект;//вот тут он


........
   МимохожийОднако
 
31 - 20.01.18 - 07:54
(14) Посмотри отладчиком переменную Элемент. Там должен быть объект или ссылка на него.
   Gucci76
 
32 - 20.01.18 - 11:41
Доброго времени суток.
Думаю мой вопрос похож
Можно ли из внешней печатной формы открыть другую обработку? И в новую обработку передать ссылку на документ?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует