Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ВыгрузитьПоПравилу Субконто КД 2.0

ВыгрузитьПоПравилу Субконто КД 2.0
Я
   putinhuilo
 
13.04.20 - 14:05
Гайз ай нид хелп! Хочу подменить субконто "Регистрация в налоговом органе" на "Контрагенты" при выгрузке свойства СубконтоДт
Пробовал изменить таким образом, все равно выгрузился Регистрация в налоговом органе
    Значение.Удалить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоНаименованию("Регистрация в налоговом органе"));
    Значение.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты, Справочники.Контрагенты.НайтиПоРеквизиту("КодГосударственногоОргана",Субконто.Код));

А так выгружается не правильно
            ВыгрузитьПоПравилу(Справочники.Контрагенты.НайтиПоРеквизиту("КодГосударственногоОргана",Субконто.Код), ,,,"ВидыСубконтоХозрасчетные");
   Ёпрст
 
1 - 13.04.20 - 14:15
(0) ну и подменяй в ПКС на что хочешь..
Значение = нужное.. усё
   Ёпрст
 
2 - 13.04.20 - 14:16
Даже в типовых есть примеры..
типа Если что-то, то значение= вася; ИмяПКО = "вася" иначе Значение = федя, ИмяПКо="федя"
   putinhuilo
 
3 - 13.04.20 - 14:16
Так тоже пробовал ошибку пишет при выгрузке

        СубконтоДт = Новый Соответствие();
            СубконтоДт.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты, Справочники.Контрагенты.НайтиПоРеквизиту("КодГосударственногоОргана",Субконто.Код));
            Значение = СубконтоДт;
   Ёпрст
 
4 - 13.04.20 - 14:26
(3) ясен пень.. нужно конкретное значение выгружать, а не соответствие
   Ёпрст
 
5 - 13.04.20 - 14:28
оставь так, что ле
Значение  = Справочники.Контрагенты.НайтиПоРеквизиту("КодГосударственногоОргана",Субконто.Код);
ИмяПКО = "Контрагенты";

тока вот, что у тебя тут Субконто и откуда взялось - загадка
   putinhuilo
 
6 - 13.04.20 - 14:29
Процедура ПКС_ПриВыгрузке_СписаниеСРасчетногоСчета_Хозрасчетный_СубконтоДт_ВидыСубконтоСчета660(ФайлОбмена, Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, 
                                           ПКС, ПКО, ОбъектКоллекции, Отказ, Значение, КлючИЗначение, ВидСубконто, 
                                           Субконто, Пусто, ИмяПКО, ПКОСвойств, УзелСвойства, УзелКоллекцииСвойств, 
                                           ИмяПКОВидСубконто) Экспорт
оно в параметрах
   Ёпрст
 
7 - 13.04.20 - 14:34
(6) ёпт.. ты этот код где пишешь то ?
В ПКС в Перед выгрузкой, надеюсь ?
   putinhuilo
 
8 - 13.04.20 - 14:42
перед выгрузкой нет значения вообще

Перед выгрузкой

Условия возникновения события

Событие выполняется перед выгрузкой значения свойства. Возможен отказ от выгрузки. УзелСвойства еще не создан, конвертируемое значение Неопределено.

Параметры:

Источник - Произвольный. Ссылка на выгружаемый объект источник данных

Приемник - xml-узел формируемого объекта приемника

ВходящиеДанные - Произвольный. Произвольные вспомогательные данные, переданные правилу конвертации из других правил (например из правила выгрузки данных или правила конвертации свойств). Значение параметра, как правило, имеет тип Структура, где ключи значений соответствуют структуре свойств объекта приемника. Таким образом, при конвертации свойств (в ПКС), конвертируемые данные (или часть данных) могут быть получены из этого параметра.

ИсходящиеДанные - Произвольный. Произвольные вспомогательные данные, передаваемые правилам конвертации объектов свойств (ПКО).

ПКС - ссылка на правило конвертации свойств

ПКО - ссылка на правило конвертации объектов - родитель данного правила конвертации свойств

ОбъектКоллекции - ссылка на выгружаемый объект коллекции. Например, строка табличной части или запись регистра или строка таблицы значений или строка результата запроса и т.д.

Отказ - Булево - Если Истина, то конвертация свойства не производится, обработка данного правила конвертации свойств прекращается

Значение - Неопределено. Конвертируемое значение свойства. Если значение определить в теле обработчика, то стандартная процедура получения значения не будет происходить.

ТипПриемника - Строка. Тип свойства приемника. Для свойств не составных типов - всегда определен. Для свойств составных типов - определяется либо правилом конвертации, либо разработчиком конвертации

ИмяПКО - имя правила конвертации, по которому производится преобразование значения свойства. Может быть выбрано в зависимости от каких-либо условий.

ИмяПКОВидСубконто - имя правила конвертации, по которому производится преобразование вида субконто (только для свойств СубконтоДт и СубконтоКт записей регистра бухгалтерии). Может быть выбрано в зависимости от каких-либо условий.

Пусто - Булево - Ложь. Если установить Истина, то в приемник будет записано пустое значение свойства, соответствующего типа и дальнейшая обработка правила конвертации свойств будет прекращена

Выражение - Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8

НеЗамещать - Булево - по умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы установка свойства производиться не будет.

УзелКоллекцииСвойств - xml-узел коллекции свойств

ВыгрузитьОбъект - Булево - Если Истина, то объект выгружается целиком. Если Ложь, то выгружается только ссылка.
   Ёпрст
 
9 - 13.04.20 - 14:45
(8) :))

Мне не надо справку по КД постить.
Вам надо в ПКС у субконтоДт в проце перед выгрузкой написать

Значение = Справоники.Клиентосы.НайтиПоКоду("Вася");
ИмяПКО = "Клиентосы" и всё.
   Ёпрст
 
10 - 13.04.20 - 14:46
тогда в субконтоДт полетит клиентос Вася, выгруженный по правилу ПКО "клиентосы".
Туда же воткнуть условие какое надо
   Ёпрст
 
11 - 13.04.20 - 14:47
точнее, ИмяПКОВидСубконто нужно определить
   Ёпрст
 
12 - 13.04.20 - 14:50
Тип того

Если ТипЗнч(ОбъектКоллекции.СубконтоДт) = Тип("нужный тип") Тогда
   Значение = Справочники.Клиентосы.НайтиПоКоду(ОбъектКоллекции.СубконтоДт.Код);
   ИмяПКОВидСубконто  = "Клиентосы";
КонецЕсли;
   putinhuilo
 
13 - 13.04.20 - 16:21
Значение у СубконтоДт = РегистрБухгалтерииСубконто.Хозрасчетный

https://imgur.com/VkM1GYi
   putinhuilo
 
14 - 13.04.20 - 16:25
Обратится к нужному субконто можно только так:

ОбъектКоллекции.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПонаименованию("Регистрация в налоговом органе")]
   Ёпрст
 
15 - 13.04.20 - 16:37
(14) будь проще:

влепи тогда в При выгрузке
Если  ТипЗнч(Значение) = Тип("нужный тип") Тогда
   Значение = ...
   ИмяПко = ...
   putinhuilo
 
16 - 13.04.20 - 16:44
Значение = Неопределено вообще

https://imgur.com/zqJdhf1
   Ёпрст
 
17 - 13.04.20 - 16:45
(16) ПРИ ВЫГРУЗКЕ а не перед
   Ёпрст
 
18 - 13.04.20 - 16:45
там значение уже есть и его тоже можешь переопределить
   putinhuilo
 
19 - 13.04.20 - 16:47
я уже пробовал менять значение при выгрузке - бесполезно
оно не меняется
и ты сам сказал что надо перед
   Ёпрст
 
20 - 13.04.20 - 16:56
(19) можно Перед, можно При..
   Ёпрст
 
21 - 13.04.20 - 16:56
просто в При уже есть значение, в Перед, надо брать из источника самостоятельно
   putinhuilo
 
22 - 13.04.20 - 16:57
вот я пробовал так 
удалял не нужное и вставлял нужное

 Значение.Удалить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоНаименованию("Регистрация в налоговом органе"));
    Значение.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты, Справочники.Контрагенты.НайтиПоРеквизиту("КодГосударственногоОргана",Субконто.Код));

выгрузилось все равно Регистрация в налоговом органе
   Ёпрст
 
23 - 13.04.20 - 16:57
И "оно не меняется", как определил ? В файле выгрузке что ?
   Ёпрст
 
24 - 13.04.20 - 16:58
(22) Значение.. в ПриВыгрузке .. какой тип и что там ?
   putinhuilo
 
25 - 13.04.20 - 16:58
когла загружал то ошибка была что невозможно записать движение с субконто Регистрация в налоговом органе
   putinhuilo
 
26 - 13.04.20 - 17:03
Значение при выгрузке содержит тип РегистрБухгалтерииСубконто.Хозрасчетный при открытии коллекция из ключей и значений

https://imgur.com/pHFz8N5
   Ёпрст
 
27 - 13.04.20 - 17:07
Точно, при субконто надо соответствие определить
   putinhuilo
 
28 - 13.04.20 - 17:21
при выгрузке думаю так должно отработать

 СубконтоРегистрацияВНалоговомОргане = ОбъектКоллекции.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПонаименованию("Регистрация в налоговом органе")];
         СубконтоВидыПлатежейВГосБюджет = ОбъектКоллекции.СубконтоДт.ВидыПлатежейВГосБюджет;
         СубконтоДтНовое = Новый Соответствие();
 
         Если НЕ СубконтоРегистрацияВНалоговомОргане = Неопределено Тогда
             
            СубконтоДтНовое.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты, Справочники.Контрагенты.НайтиПоРеквизиту("КодГосударственногоОргана",СубконтоРегистрацияВНалоговомОргане.Код));
        КонецЕсли
        
         Если НЕ СубконтоВидыПлатежейВГосБюджет = Неопределено Тогда
             
            СубконтоДтНовое.Вставить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ВидыПлатежейВГосБюджет, СубконтоВидыПлатежейВГосБюджет);
        КонецЕсли
        
        Значение = СубконтоДтНовое;
   putinhuilo
 
29 - 13.04.20 - 17:22
точнее ПЕРЕД
   putinhuilo
 
30 - 13.04.20 - 17:23
тоесть нужно переопределить субконто перед выгрузкой
 
 Рекламное место пустует
   Ёпрст
 
31 - 13.04.20 - 17:28
(29)

так должно заработать:

СубконтоДт = Новый Соответствие;
СубконтоДт.Вставить(Новый Структура("Наименование", "Контрагенты"), Справочники.Контрагенты.НайтиПоКоду(.....));
СубконтоДт.Вставить(Новый Структура("Наименование", "Договры"),.......);

Значение = СубконтоДт;
   Ёпрст
 
32 - 13.04.20 - 17:29
короче, определяешь соответствие и всё.
Или в При выгрузке, изменяешь готовое соответствие, которое в Значение торчит
   putinhuilo
 
33 - 13.04.20 - 17:33
(28) так отработало

https://imgur.com/m0e9nUO
   putinhuilo
 
34 - 13.04.20 - 17:34
только надо прописать что для счета 68.01 еще
   putinhuilo
 
35 - 13.04.20 - 17:34
(31) там не должно быть структуры
   putinhuilo
 
36 - 13.04.20 - 17:35
(32) при выгрузке я уже писал что значение не меняется
   putinhuilo
 
37 - 13.04.20 - 17:35
спасибо за помощь
   AnTeN_Li
 
38 - 20.04.20 - 18:15
подмена субконто без хитростий, структур и соответствий =)

в ПКС ПриВыгрузке

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

клнецесли;


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