8.х 1с83 КА 2.4 Дополнительная проводка к типовому документу

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем АртемБууууу, 16 ноя 2018.

  1. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    вот Вы человек интересный, если бы я знал как это проверить уж точно бы не тратил время и не спрашивал бы об этом здесь
    --- Объединение сообщений, 20 ноя 2018 ---
    если вызывается ПриЗаписи два раза. то как мне посмотреть что там после второго раза в наборе? первый раз то я вижу, при первом вызове ПриЗаписи мои проводки добавились и все, больше в наборе нет ни чего
    --- Объединение сообщений, 20 ноя 2018 ---
    вот что у меня в наборе записей ПриЗаписи

    Вложения:

    Последнее редактирование: 20 ноя 2018
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Странный вы человек: движения в набор записей пишите, а про то, как узнать количество записей в наборе, не знаете.....

    синтаксис-помощник вам в помощь.
  3. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    чуть выше скриншот - это то, что у меня в наборе записей
    или я не там смотрю?

    НаборЗаписей.Количество() - так можно узнать количество в наборе записей
    отладчик то тоже мне показал количество элементов в наборе записей, их два
    Последнее редактирование: 20 ноя 2018
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Если набор пустой, то нет смысла добавлять в него свои проводки, не находите?

    Добавлять в набор свои записи и удалять из него нужно только, если в нем есть записи, сформированные типовым механизмом.
  5. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    подскажите просто как и где правильно смотреть набор записей, где я смогу увидеть все проводки и свои и типовые?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Вы ж уже сами определили: в ПередЗаписью набора записей и догадались, что событие происходит 2 раза.
    Вас должен интересовать только тот случай, когда набор заполнен типовым механизмом, чтобы добавить/убрать существующие записи в набор(-е).

    Что еще вам не понятно?
  7. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    тот случай, когда набор заполнен типовым механизмом, чтобы добавить/убрать существующие записи в набор(-е). - это и не понятно, где его посмотреть и где убрать необходимое
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Смотреть/добавлять/убирать записи там же - в ПередЗаписью.
  9. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    вы видели скриншот выше? там как раз то что у меня в РБ ПриЗаписи, но нет там типовых проводок, значит они формируются после, а вот как в это после попасть, чтобы посмотреть и почистить я не знаю
  10. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    нашел полный набор записей в обработке ОтражениеДокументовВРеглУчете,

    Код:
    &НаСервере
    Процедура ЗаполнитьПредставлениеВидовСубконто()
    
        Для каждого Запись Из НаборЗаписей Цикл
            ЗаполнитьЗначенияСвойств(Запись, ПредставлениеВидовСубконто(Запись.СчетДт, "Дт"));
            ЗаполнитьЗначенияСвойств(Запись, ПредставлениеВидовСубконто(Запись.СчетКт, "Кт"));
        КонецЦикла;
    
    КонецПроцедуры
    
    на скриншоте ниже, состав набора записей

    теперь его надо почистить от записей, которые мне не нужны в этом документе

    Вложения:

  11. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    помогите, пожалуйста, ни как не могу осилить...
  12. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    День бьюсь, пока безрезультатно.

    насколько я понимаю у РБ ПриЗаписи вызывается два раза, вот основной вопрос. как попасть именно во второй вызов и обратиться к НаборуЗаписей?

    Теперь необходимо мне удалить типовые проводки по определенному счету. Вот день уже потратил на поиски, где же могу я найти весь набор записей, а не только тот, в который я добавил свои проводки. Мне надо видеть все проводки в одном наборе, чтобы потом из выгрузить в ТЗ, перебрать с условием и обратно вернуть в набор записей. Кстати, как выгрузить в ТЗ из набора понятно, а как обратно в набор загрузить и записать?

    То есть получается:
    1) найти полный набор записей РБ по данному регистратору,
    2) выгрузить наборзаписей РБ в ТЗ
    3) перебрать ТЗ, удалить ненужные строки
    4) загрузить оставшееся обратно в наборзаписей

    кто что подскажет?
  13. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Вы синтаксис-помощник на половину читаете что ли? Там же все методы НабораЗаписей описываются, даже с примерами кода.

    Где и как найти заполненный типовым механизмом набор записей я вам уже третий раз повторяю: проверить на заполненность набор записей в событии ПередЗаписью набора записей или в модуле набора записей, в предопределенном обработчике события ПередЗаписью()
  14. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    я же Вам и говорю, что смотрел я и там вижу только свои проводки и больше ни чего, типовых там нет
    Вы единственный на этом форуме что-то знаете
  15. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    я попробовал все, что есть в синтакс помощнике по поводу набора записей РБ, но нет результата, точнее он такой же как и был, вижу только мною добавленные проводки, типовые не вижу

    Код:
    ОтчетПереработчика = Источник.Отбор.Регистратор.Значение;
        Если ТипЗнч(ОтчетПереработчика) = Тип("ДокументСсылка.ОтчетПереработчика") Тогда
            Если ОтчетПереработчика.Давальческое = Истина Тогда
                // регистр Хозрасчетный Продукция
                Для Каждого ТекСтрокаПродукция Из ОтчетПереработчика.Продукция Цикл
                    НоваяПроводка = Источник.Добавить();
                    НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработкуВПроизводстве;
                    НоваяПроводка.Период = ОтчетПереработчика.Дата;
                    НоваяПроводка.Организация = ОтчетПереработчика.Организация;
                    НоваяПроводка.ПодразделениеДт = ОтчетПереработчика.Подразделение;
                    //НоваяПроводка.Сумма = ОтчетПереработчика.Сумма;
                    НоваяПроводка.КоличествоДт = ТекСтрокаПродукция.КоличествоУпаковок;
                    НоваяПроводка.Содержание = ОтчетПереработчика.Содержание;
                    НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ОтчетПереработчика.Контрагент;
                    НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаПродукция.Номенклатура;
                КонецЦикла;
               
                // регистр Хозрасчетный Материалы
                Для Каждого ТекСтрокаМатериалы Из ОтчетПереработчика.Материалы Цикл
                    НоваяПроводка = Источник.Добавить();
                    НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.МатериалыПринятыеВПереработку;
                    НоваяПроводка.Период = ОтчетПереработчика.Дата;
                    НоваяПроводка.Организация = ОтчетПереработчика.Организация;
                    НоваяПроводка.ПодразделениеКт = ОтчетПереработчика.Подразделение;
                    //НоваяПроводка.Сумма = ОтчетПереработчика.Сумма;
                    НоваяПроводка.КоличествоКт = ТекСтрокаМатериалы.КоличествоУпаковок;
                    НоваяПроводка.Содержание = ОтчетПереработчика.Содержание;
                    НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ОтчетПереработчика.Контрагент;
                    НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаМатериалы.Номенклатура;
                КонецЦикла;
            КонецЕсли;
        КонецЕсли;
       
        Рег = РегистрыБухгалтерии.Хозрасчетный;
        НаборЗаписей = Рег.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Регистратор.Значение = ОтчетПереработчика;
        НаборЗаписей.Прочитать();
       
        Рег = РегистрыБухгалтерии.Хозрасчетный;
        НаборЗаписей = Рег.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Документ.Значение = ОтчетПереработчика;
        ОсновныеДанные = НаборЗаписей.Выгрузить();
    
  16. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.889
    Симпатии:
    1.029
    Баллы:
    204
    Если типовых проводок нет в ПередЗаписью во всех случаях записи набора, то значит их не будет и в ПриЗаписи, а следовательно будут только ваши проводки.
    Почему не формируются типовые проводки - нужно разбираться с типовым механизмом, там много причин может быть.
  17. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.120
    Симпатии:
    550
    Баллы:
    204
    Откройте модуль менеджера документа "ПередачаСырьяПереработчику". Найдите там функцию "ТекстОтраженияВРеглУчете". Перед строкой кода
    Код:
    СтрокаОбъединения = Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + Символы.ПС;
    В самом конце добавьте этот код.
    Код:
        // {1c-aspect; [email protected]; Начало 20.11.2018}
    #Область ДополнительнаяПроводкаПоЗабалансовомуСчету // (Дт 003.02 :: Кт -)
        aspect_ДополнительнаяПроводка =
        "ВЫБРАТЬ
        |    Операция.Ссылка КАК Ссылка,
        |    Операция.Дата КАК Период,
        |    Операция.Организация КАК Организация,
        |    НЕОПРЕДЕЛЕНО КАК ИдентификаторСтроки,
        |
        |    ЕСТЬNULL(Стоимости.Сумма, Строки.Сумма) КАК Сумма,
        |
        |    НЕОПРЕДЕЛЕНО КАК ВидСчетаДт,
        |    НЕОПРЕДЕЛЕНО КАК АналитикаУчетаДт,
        |    НЕОПРЕДЕЛЕНО КАК МестоУчетаДт,
        |
        |    ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаДт,
        |    НЕОПРЕДЕЛЕНО КАК ПодразделениеДт,
        |    Строки.КорНаправлениеДеятельности КАК НаправлениеДеятельностиДт,
        |
        |    ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.МатериалыПринятыеВПереработкуВПроизводстве) КАК СчетДт,
        |    Операция.Контрагент КАК СубконтоДт1,
        |    Строки.Номенклатура КАК СубконтоДт2,
        |    НЕОПРЕДЕЛЕНО КАК СубконтоДт3,
        |
        |    0 КАК ВалютнаяСуммаДт,
        |    Строки.Количество КАК КоличествоДт,
        |    ЕСТЬNULL(Стоимости.СуммаНУ, Строки.СуммаНУ) КАК СуммаНУДт,
        |    ЕСТЬNULL(Стоимости.СуммаПР, Строки.СуммаПР) КАК СуммаПРДт,
        |    ЕСТЬNULL(Стоимости.СуммаВР, Строки.СуммаВР) КАК СуммаВРДт,
        |
        |    ЗНАЧЕНИЕ(Перечисление.ВидыСчетовРеглУчета.Производство) КАК ВидСчетаКт,
        |    НЕОПРЕДЕЛЕНО КАК АналитикаУчетаКт,
        |    ЕСТЬNULL(Строки.Склад.Подразделение, ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)) КАК МестоУчетаКт,
        |
        |    ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка) КАК ВалютаКт,
        |    ЕСТЬNULL(Строки.Склад.Подразделение, ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)) КАК ПодразделениеКт,
        |    Строки.НаправлениеДеятельности КАК НаправлениеДеятельностиКт,
        |
        |    ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ПустаяСсылка) КАК СчетКт,
        |
        |    НЕОПРЕДЕЛЕНО КАК СубконтоКт1,
        |    НЕОПРЕДЕЛЕНО КАК СубконтоКт2,
        |    НЕОПРЕДЕЛЕНО КАК СубконтоКт3,
        |
        |    0 КАК ВалютнаяСуммаКт,
        |    0 КАК КоличествоКт,
        |    ЕСТЬNULL(Стоимости.СуммаНУ, Строки.СуммаНУ) КАК СуммаНУКт,
        |    ЕСТЬNULL(Стоимости.СуммаПР, Строки.СуммаПР) КАК СуммаПРКт,
        |    ЕСТЬNULL(Стоимости.СуммаВР, Строки.СуммаВР) КАК СуммаВРКт,
        |    ""Дополнительная проводка"" КАК Содержание
        |ИЗ
        |    ДокументыКОтражению КАК ДокументыКОтражению
        |
        |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        |        Документ.ПередачаСырьяПереработчику КАК Операция
        |    ПО
        |        ДокументыКОтражению.Ссылка = Операция.Ссылка
        |
        |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        |        ВтСтроки КАК Строки
        |    ПО
        |        Строки.Ссылка = Операция.Ссылка
        |        И Строки.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
        |
        |    ЛЕВОЕ СОЕДИНЕНИЕ
        |        ВтСтоимости КАК Стоимости
        |    ПО
        |        Строки.Ссылка = Стоимости.Ссылка
        |        И Строки.Номенклатура = Стоимости.Номенклатура
        |        И Строки.Склад = Стоимости.Склад
        |        И Строки.ГруппаФинансовогоУчета = Стоимости.ГруппаФинансовогоУчета
        |        И Строки.НаправлениеДеятельности = Стоимости.НаправлениеДеятельности
        |        И Строки.ТипЗапасов = Стоимости.ТипЗапасов
        |        И Строки.Контрагент = Стоимости.Контрагент
        |        И Строки.СтатьяРасходов = Стоимости.СтатьяРасходов
        |        И Строки.АналитикаРасходов = Стоимости.АналитикаРасходов
        |        И Строки.РазделУчета = Стоимости.РазделУчета
        |        И Строки.ГруппаПродукции = Стоимости.ГруппаПродукции
        |ГДЕ
        |    НЕ Строки.РазделУчета В (
        |        ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ПроизводственныеЗатраты),
        |        ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыПринятыеНаКомиссию),
        |        ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.МатериалыПринятыеВПереработку))
        |    И ( ВЫБОР КОГДА Операция.ВернутьМногооборотнуюТару ТОГДА
        |            Строки.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
        |        ИНАЧЕ
        |            ИСТИНА
        |        КОНЕЦ )
        |";
    #КонецОбласти
        // {1c-aspect; [email protected]; Конец 20.11.2018}
    
    Затем в куске добавьте эту переменную, чтобы получилось так
    Код:
        СтрокаОбъединения = Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + Символы.ПС;
    
        ТекстЗапроса = ""
            + ПередачаКомиссионныхТоваровСписание + СтрокаОбъединения
            + ПередачаТоваров + СтрокаОбъединения
            + ПередачаТоваровСоСкладаПроизводства + СтрокаОбъединения
            + СписаниеМатериаловДавальца + СтрокаОбъединения
            + РасходыНаПроизводствоИзМатериаловДавальца + СтрокаОбъединения
            + СписаниеПродукцииДавальца + СтрокаОбъединения
            + РасходыНаПроизводствоИзПродукцииДавальца + СтрокаОбъединения
            + ЗалоговаяСтоимостьПереданнойТары + СтрокаОбъединения
            + ЗалоговаяСтоимостьПереданнойТарыСкладПроизводства + СтрокаОбъединения
            + ТекстВключениеИсключениеНДСВСтоимость + СтрокаОбъединения
            + aspect_ДополнительнаяПроводка + "";
    
        Возврат ТекстЗапроса;
  18. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    возможно ли в тексте запроса сделать так, чтобы по определенному регистратору и по определенному счету не формировались типовые проводки, например, чтобы если регистратор "ПередачаСырьяПереработчику" и ПередачаСырьяПереработчику.Давальческое = Истина Тогда не формировать проводки по 10 счету и его субсчетам?
  19. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    199
    Симпатии:
    1
    Баллы:
    29
    ладно, а такой вопрос, есть в документе "передачаСырьяПереработчкиу" в модуле менеджера Функция ТекстОтраженияВРеглУчете()


    так вот, а можно ли как-нибудь из модуля менеджера объекта обратиться к реквизиту объекта, посмотреть, если он Истина, тогда не добавлять в массив определенные тексты отражения:

    ТекстыОтражения = Новый Массив;
    ТекстыОтражения.Добавить(ПередачаКомиссионныхТоваровСписание);
    ТекстыОтражения.Добавить(ПередачаТоваров);
    ТекстыОтражения.Добавить(ПередачаТоваровСоСкладаПроизводства);
    ТекстыОтражения.Добавить(СписаниеМатериаловДавальца);
    ТекстыОтражения.Добавить(РасходыНаПроизводствоИзМатериаловДавальца);
    ТекстыОтражения.Добавить(СписаниеПродукцииДавальца);
    ТекстыОтражения.Добавить(РасходыНаПроизводствоИзПродукцииДавальца);
    ТекстыОтражения.Добавить(ЗалоговаяСтоимостьПереданнойТары);
    ТекстыОтражения.Добавить(ЗалоговаяСтоимостьПереданнойТарыСкладПроизводства);
    ТекстыОтражения.Добавить(ТекстВключениеИсключениеНДСВСтоимость);
  20. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.120
    Симпатии:
    550
    Баллы:
    204
    После этих вопросов, пожалуйста, не трогайте в программе ничего.