Имя: Пароль:
1C
1С v8
Изменение счета учета доходов в БП при обмене из УТ
,
0 Sakhline
 
21.07.13
12:26
Здравствуйте!
Люди добрые, подскажите где и что поменять в правилах обмена, чтобы при выгрузке из УТ в БП в документе отчет о розничных продажах вместо счетов учета доходов и расходов, проставлялись не счета назначенные для номенклатуры(90.01.1 и 90.02.1), а счета 90.01.2 и 90.02.2 т.е. счета для спец режима. и такая же задача для документа реализация товаров и услуг. там проставлять счета спец режима нужно если Контрагент физ.лицо но не относится к группе Индивидуальные предприниматели.
Прошу сильно не пинать в правилах переноса только начал ковыряться.
Заранее благодарю.
1 Sakhline
 
23.07.13
02:42
up Не поверю, что никто не знает... Подскажите пожалуйста.
2 zhivaz
 
23.07.13
06:01
Точно не скажу, но вроде там отрабатывает процедура из БП ЗаполнитьСчетаУчетаСтрокиТЧ или как то так. Для первой ситуевины попробуй нарисовать правило в настройках номенклатуры в БП с привязкой к конкретному розничному складу. Для второй ситуевины хз.
3 zhivaz
 
23.07.13
06:03
Я не про правила обмена, а про закладку в номенклатуре счетаучета в пользовательском режиме если чо)
4 Godofsin
 
23.07.13
06:15
Смотри ПВД "после выгрузки", счета учета должны там проставляться. Возможно процедурой, типа (2)
5 Sakhline
 
23.07.13
06:32
В правилах не нашел :( А в пользовательском режиме (настройка счетов номеклатуры - не покатит, так как склад один с видом оптовый)...
А в правилах искать в алгоритмах, в правилах переноса или еще где? (в правилах не силен, только взялся их ковырять)...
6 Sakhline
 
23.07.13
06:33
+(5) В ПВД по отчету о розничных продажах присутствует только <Перед обработкой>
7 Godofsin
 
23.07.13
06:39
(6) Тьфу, хню тебе написал. ПКО смотри, "после загрузки".
8 Sakhline
 
23.07.13
08:13
(7) ага в ПКО есть такое...
Не могу сообразить как изменить строку:
СчетаУчета = БухгалтерскийУчет.ПолучитьСчетаУчетаНоменклатуры(Объект.Организация, СтрокаТЧ.Номенклатура, Объект.Склад);
Чтобы назначить именно СчетУчетаДоходов и счетУчетаРасходов
Исходя из вышеназванной строки он получает все счета из счетов номенклатуры.
9 cw014
 
23.07.13
08:14
(8) Это тебя на мысль не наталкивает?
10 Sakhline
 
23.07.13
08:29
(9) Меня наталкивает на мысль, что эту строку нуно изменить :) А вот как... ведь в счетах учена номенклатуры не только нужные мне 2 счета...
Я конечно прошу прощения, но я еще нуб...
11 Godofsin
 
23.07.13
08:45
(10) Ну присвой напрямую, без использования глобальной процедуры
12 Sakhline
 
23.07.13
13:16
(11) Чего-то я ни как не могу победить как сделать чтобы для каждой строки он переназначил счета?
Для каждого СтрокаТЧ из Товары Цикл
           СчетДоходов =  ПланыСчетов.Хозрасчетный.ВыручкаЕНВД;
           СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД;
           КонецЦикла;
Так не катит :(
13 Sakhline
 
23.07.13
13:33
Сделал вот так: Для Каждого СтрокаТабличнойЧасти Из Объект.Товары
       Цикл
           СтрокаТабличнойЧасти.СчетДоходов =  ПланыСчетов.Хозрасчетный.ВыручкаЕНВД;
           СтрокаТабличнойЧасти.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД;
           КонецЦикла;

Работает, но последнюю строку игнорирует, подскажите что не так?
14 Sakhline
 
24.07.13
03:39
С отчетом о розничных продажах разобрался немного не туда воткнул изменения :) Вот рабочий вариант (может кому пригодится):

Для Каждого СтрокаТЧ Из Объект.Товары
       Цикл
           СтрокаТЧ.СчетДоходов =  ПланыСчетов.Хозрасчетный.ВыручкаЕНВД;
           СтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД;
           КонецЦикла;

А может все-же кто-нибудь знает как победить вторую задачу:
В документе реализацияТоваровИУслуг если контрагент физ.лицо и его родитель не "Индивидуальные предприниматели", тогда заполнить счета учета так же как и в отчете о розничных продажах
15 Godofsin
 
24.07.13
06:52
(14) Ну так же, что -то в типе:

Если Объект.Контрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо и Объект.Контрагент.Родитель.Наименование = "Индивидуальные предприниматели" тогда
....
....
иначе
....
....
КонецЕсли;
16 Godofsin
 
24.07.13
06:52
заменить "=" на "<>"
17 Sakhline
 
24.07.13
10:24
(16) Это понятно... Написал:

Если Объект.Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ФизЛицо И Объект.Контрагент.Родитель.Наименование<>"Индивидуальные предприниматели" Тогда
   Для Каждого СтрокаТЧ Из Объект.Товары
       Цикл
           СтрокаТЧ.СчетДоходов =  ПланыСчетов.Хозрасчетный.ВыручкаЕНВД;
           СтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД;
           Если ПустаяСтрока(СтрокаТЧ.Субконто) Тогда
               СтрокаТЧ.Субконто = СтрокаТЧ.Номенклатура.НоменклатурнаяГруппа;
               КонецЕсли;
           КонецЦикла;
   КонецЕсли;

Вот только вообще ничего не происходит... Дело в том,что в правилах в этом документе нет понятия строкаТЧ - хотя при загрузке и обработке ни каких ошибок не вылазит... А можно ли как-то через отладчик поставить точки останова при обработке правил? чтобы можно было отловить что за объекты там есть...
18 Sakhline
 
24.07.13
16:28
UP Подскажите как достучаться в правилах ПКО по документу реализацияТоваровиУслуг до текущейСтроки... уже целый день мучаюсь.. ничего не выходит :(
19 Sakhline
 
24.07.13
17:00
Вобщем разобрался с тем, что стучаться нужно все через ту же "СтрокаТЧ"... Код указанный в (17) по моему же мнению должен работать, а вот почему-то не меняет от счета... в чем беда.. в какую строку его нуно ткнуть в ПКО...???
У меня получилось следующее (но к сожалению не работает):

//склад и организация по умолчанию
Если Объект.ЭтоНовый() Тогда
   СсылкаНового = Объект.ПолучитьСсылкуНового();
   Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(СсылкаНового);
   СтрокаСсылки = Параметры.ТоварыТабличнаяЧасть.Добавить();
   СтрокаСсылки.Ссылка = СсылкаНового;
Иначе
   Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.Ссылка);
   СтрокаСсылки = Параметры.ТоварыТабличнаяЧасть.Добавить();
   СтрокаСсылки.Ссылка = Объект.Ссылка;
КонецЕсли;

Если ПараметрыОбъекта <> Неопределено Тогда
   ТаблицаПараметровТовары = ПараметрыОбъекта["ТоварыТабличнаяЧасть"];
   Если ТипЗнч(ТаблицаПараметровТовары) = Тип("ТаблицаЗначений") Тогда
       СтрокаСсылки.ТоварыТабличнаяЧасть = ТаблицаПараметровТовары.Скопировать();
       //
       Если Объект.Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ФизЛицо И Объект.Контрагент.Родитель.Наименование<>"Индивидуальные предприниматели" Тогда
   Для Каждого СтрокаТЧ Из Объект.Товары
       Цикл
       Сообщить (СтрокаТЧ.СчетДоходов);
           СтрокаТЧ.СчетДоходов =  ПланыСчетов.Хозрасчетный.ВыручкаЕНВД;
           СтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД;
           Если ПустаяСтрока(СтрокаТЧ.Субконто) Тогда
               СтрокаТЧ.Субконто = СтрокаТЧ.Номенклатура.НоменклатурнаяГруппа;
               КонецЕсли;
           КонецЦикла;
       КонецЕсли;
       //

   КонецЕсли;
       КонецЕсли;
20 Sakhline
 
24.07.13
17:03
Строку "Сообщить (СтрокаТЧ.СчетДоходов);
написал просто для себя, чтобы видеть, что я достучался до того что нужно.. (потому как так и не разобрался где ставить точку останова в отладчике :(

Хороший блог получается :) сколько пишу все без ответов.... :(
21 Кай066
 
24.07.13
17:11
Счета учёта номенклатуры как бы указываются в режиме 1С Предприятие в БП
22 Кай066
 
24.07.13
17:15
Предприятие-Товары-Счета учета номенклатуры- Счет учета доходов от реализации/Счет учета расходов
23 Sakhline
 
25.07.13
01:23
(21) Это я знаю, там проставляются счета по УСН, так удобнее бухам... Моя задача именно чтобы в независимости от установленных счетов учета номенклатуры при выгрузке из УТ в БП реализаций на физ.лица счета учета менялись на нужные мне.
24 Sakhline
 
25.07.13
16:42
UP Ну так кто-нибудь может еще что-нибудь посоветовать?
25 Sakhline
 
26.07.13
16:39
:( Неужели ни как нельзя в правилах подправить обработку реализаций?
26 be-may
 
26.07.13
16:56
(25) давай еще разок. В чем сейчас вопрос заключается ?
27 Рэйв
 
26.07.13
17:00
(25)Да помоему тебе уже все посоветовали. Только ты советами не умеешь пользоваться

На момент обработки ПослеЗагрузки у тебя готовый объект для записи, но еще не записанный, так что в этот момент можешьтам заменять что угодно на что хочешь.
Смысл Если....Тогда объяснить? Или не надо?
28 be-may
 
26.07.13
17:00
(18) чтобы достучаться до строки табличной части используется ОбъектКоллекции .

Например :
Если ОбъектКоллекции.Количество = 0 Тогда
Отказ = Истина;
КонецЕсли;
29 Рэйв
 
26.07.13
17:01
(27)на всяк случай
доступ чеоез переменную объект.
30 Sakhline
 
27.07.13
03:15
(27) За советы спасибо огромное! и я ими пользуюсь... С отчетом о розничных продажах (по советам) все получилось на ура!
А вот с реализацией....

Вот полностью код обработки после загрузки:
//склад и организация по умолчанию
Если Объект.ЭтоНовый() Тогда
    СсылкаНового = Объект.ПолучитьСсылкуНового();
    Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(СсылкаНового);
    СтрокаСсылки = Параметры.ТоварыТабличнаяЧасть.Добавить();
    СтрокаСсылки.Ссылка = СсылкаНового;
Иначе
    Параметры.ДокументыСОпределениемДопРеквизитов.Добавить(Объект.Ссылка);
    СтрокаСсылки = Параметры.ТоварыТабличнаяЧасть.Добавить();
    СтрокаСсылки.Ссылка = Объект.Ссылка;
    
КонецЕсли;

Если ПараметрыОбъекта <> Неопределено Тогда
    ТаблицаПараметровТовары = ПараметрыОбъекта["ТоварыТабличнаяЧасть"];
    Если ТипЗнч(ТаблицаПараметровТовары) = Тип("ТаблицаЗначений") Тогда
        СтрокаСсылки.ТоварыТабличнаяЧасть = ТаблицаПараметровТовары.Скопировать();
//Это добавил я для получения нужного мне результата..        
        Если Объект.Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ФизЛицо И Объект.Контрагент.Родитель.Наименование<>"Индивидуальные предприниматели" Тогда
    Для Каждого СтрокаТЧ Из Объект.Товары
        Цикл
            СтрокаТЧ.СчетДоходов =  ПланыСчетов.Хозрасчетный.ВыручкаЕНВД;
            СтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД;
            Если ПустаяСтрока(СтрокаТЧ.Субконто) Тогда
                СтрокаТЧ.Субконто = СтрокаТЧ.Номенклатура.НоменклатурнаяГруппа;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;

    КонецЕсли;
КонецЕсли;

По аналогии с отчетом о розничных продажах все должно работать, тем более, что если я в цикл добавляю Сообщить (СтрокаТЧ.Номенклатура) - то он мне сообщает, т.е. отрабатывается и условие, что контрагент физ.лицо и начинается цикл замены счетов, но в реалии счета не меняются :( может этот код нужно писать не в ПКО после загрузки?... но где еще происходит обработка загруженных доков я не нашел :(
31 hhhh
 
27.07.13
07:48
ну, так

Если ПараметрыОбъекта <> Неопределено Тогда
    ТаблицаПараметровТовары = ПараметрыОбъекта["ТоварыТабличнаяЧасть"];
    Если ТипЗнч(ТаблицаПараметровТовары) = Тип("ТаблицаЗначений") Тогда
        СтрокаСсылки.ТоварыТабличнаяЧасть = ТаблицаПараметровТовары.Скопировать();
    КонецЕсли;
КонецЕсли;
//Это добавил я для получения нужного мне результата..        

        Если Объект.Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ФизЛицо И Объект.Контрагент.Родитель.Наименование<>"Индивидуальные предприниматели" Тогда
    Для Каждого СтрокаТЧ Из Объект.Товары
        Цикл
            СтрокаТЧ.СчетДоходов =  ПланыСчетов.Хозрасчетный.ВыручкаЕНВД;
            СтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажЕНВД;
            Если ПустаяСтрока(СтрокаТЧ.Субконто) Тогда
                СтрокаТЧ.Субконто = СтрокаТЧ.Номенклатура.НоменклатурнаяГруппа;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
32 Sakhline
 
27.07.13
08:37
(31) И так пробовал :) эффекта ноль :(
33 Sakhline
 
27.07.13
08:51
+(32) Такое впечатление, что он после моей процедуры переназначает в какой-то другой процедуре счета....
34 Sakhline
 
28.07.13
12:55
up... люди может тыкнете носом куда ещё копать? а то совсем голову сломал :(
35 hhhh
 
28.07.13
15:59
ну это последнее там в после загрузки или дальше ещё что-то есть?
36 Sakhline
 
28.07.13
16:19
Я внес изменения в Правила Конвертации объекта РеализацияТоваровУслуг в секцию Обработка после загрузки...
После моего кода больше ничего нет.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан