8.х Программно изменить движения документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ppkmlite, 19 дек 2014.

  1. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Подскажите, пожалуйста, как В БГУ редакция 2.0 поменять движения документа "платежное поручение"?
    Имеется документ платежное поручение. При формировании проводок к счету кредита не проставляется дополнительное субконто.
    Нужно обработкой проставить в это субконто(СубконтоКт2) значение дополнительной классификации.
    (как привязка к счету, доп классификация-это справочник, он имеет в данном случае единственное значение, его нужно проставить).
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПлатежноеПоручениеРасшифровкаПлатежа.Ссылка
    |ИЗ
    | Документ.ПлатежноеПоручение.РасшифровкаПлатежа КАК ПлатежноеПоручениеРасшифровкаПлатежа
    |ГДЕ
    | ПлатежноеПоручениеРасшифровкаПлатежа.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка", ссылка);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    ВыборкаДетальныеЗаписи = Документы.ПлатежноеПоручение.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    НаборЗаписей = РегистрыБухгалтерии.ЖурналПроводокЕПСБУ.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Документ.Ссылка);
    НаборЗаписей.Прочитать();
    Если НаборЗаписей.Количество() = 0 Тогда
    Возврат;
    КонецЕсли;
    Для каждого   Запись  ИЗ НаборЗаписей Цикл
    Заменить = Истина;
    Запись.СубконтоКт2 = //здесь нужно заменить субконтокредита2
    Подскажите, как обратиться к субконто2 и заполнить его значением?

    Вложения:

    Последнее редактирование модератором: 22 дек 2014
  2. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Скажите, пожалуйста, как правильно прописать параметры процедуры УстановитьСубконто
    У меня выходит ошибка "Поле объекта не обнаружено (СчетКт).
    Код:
    Для каждого Проводка ИЗ ДвиженияДокумента Цикл
                БухгалтерскийУчет.УстановитьСубконто(ДвиженияДокумента.СчетКт,ДвиженияДокумента.СубконтоКт2,"ДополнительнаяБюджетнаяКлассификация", выборкадетальныезаписи);
    
    Собственно весь код
    Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ПлатежноеПоручениеРасшифровкаПлатежа.Ссылка,
        |    ЖурналПроводокЕПСБУДвиженияССубконто.СчетКт,
        |    ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт2
        |ИЗ
        |    Документ.ПлатежноеПоручение.РасшифровкаПлатежа КАК ПлатежноеПоручениеРасшифровкаПлатежа
        |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто КАК ЖурналПроводокЕПСБУДвиженияССубконто
        |        ПО (2 = 1)";
        РезультатЗапроса = Запрос.Выполнить();
     
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        ВыборкаДетальныеЗаписи = Документы.ПлатежноеПоручение.Выбрать();
     
        Если ВыборкаДетальныеЗаписи.Следующий() Тогда
         
            ДвиженияДокумента = РегистрыБухгалтерии.ЖурналПроводокЕПСБУ.СоздатьНаборЗаписей();
         
            ДвиженияДокумента.Отбор.Регистратор.Установить(ВыборкаДетальныеЗаписи.Ссылка);
    
    ДвиженияДокумента.Прочитать();
            Для каждого Проводка ИЗ ДвиженияДокумента Цикл
                БухгалтерскийУчет.УстановитьСубконто(ДвиженияДокумента.СчетКт,ДвиженияДокумента.СубконтоКт2,"ДополнительнаяБюджетнаяКлассификация", выборкадетальныезаписи);
    
        КонецЦикла;
    Подскажите,как правильно прописать параметры в процедуре установитьсубконто?
    Последнее редактирование модератором: 22 дек 2014
  3. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Код:
    БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"ДополнительнаяБюджетнаяКлассификация", НужноеЗначениеСубконто);
    и записать набор записей после цикла не забыть
  4. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Вообщем с "установитьсубконто невышло". Делаю по другому.
    Скажите, что здесь не так.ошибка не удалось записать "журнал проводок ЕПСБУ"

    Проводка 2. Не заполнено субконто кредита Доп. классификация.
    Так я и для этого обработку делаю,чтоб проставить это субконто.!!

    Код:
    &НаСервере
    Процедура ОбработатьНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
       |    ПлатежноеПоручениеРасшифровкаПлатежа.Ссылка
       |ИЗ
       |    Документ.ПлатежноеПоручение.РасшифровкаПлатежа КАК ПлатежноеПоручениеРасшифровкаПлатежа";
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ДвиженияДокумента = РегистрыБухгалтерии.ЖурналПроводокЕПСБУ.СоздатьНаборЗаписей();
    ДвиженияДокумента.Отбор.Регистратор.Установить(ВыборкаДетальныеЗаписи.Ссылка);
    ДвиженияДокумента.Прочитать();
    Для каждого Проводка ИЗ ДвиженияДокумента Цикл
    Если Проводка.СчетКт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("18.01") Тогда
    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("КОСГУНазначениеПлатежа",проводка.КэкКТ);
    ПараметрыОтбора.Вставить("КБКНазначениеПлатежа",проводка.КПСКТ);
    НайденныеСтроки = ВыборкаДетальныеЗаписи.ссылка.РасшифровкаПлатежа.НайтиСтроки(ПараметрыОтбора);
    для каждого текстрока из НайденныеСтроки цикл
    Проводка.СубконтоКт[1]=текстрока.ДопКлассификация;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    ДвиженияДокумента.Записать();
    КонецЦикла;
    КонецПроцедуры
    &НаКлиенте
    Процедура Обработать(Команда)
    ОбработатьНаСервере();
    КонецПроцедуры
    Последнее редактирование модератором: 25 дек 2014
  5. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    а кто обещал, что в Проводка.СубконтоКт[1] будет именно нужное вам субконто? правильнее Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоНеПомнюКакНазывается.НужныйВидСубконто]
  6. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ДопКлассификация]=текстрока.ДопКлассификация;
    тоже не работает,ошибок не выдает,но субконто не проставляет.

    Если написать так (ниже), то проставляется субконто только для первой строчки, то есть если в проводке например два разных кбк,то и счет ,которому нужно проставить субконто два раза записывается в проводке, а этот код проставляет субконто только один раз,для первой строчки.Вторая остается пустой. Как проставить субконто ко всем строчкам?! Вот код

    Для каждого Проводка ИЗ ДвиженияДокумента Цикл
    Если Проводка.СчетКт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("18.01") Тогда
    Если проводка.КПСКт = ВыборкаДетальныеЗаписи.КБКНазначениеПлатежа И проводка.КЭККт = ВыборкаДетальныеЗаписи.КОСГУНазначениеПлатежа Тогда
    Проводка.СубконтоКт.допклассификация =ВыборкаДетальныеЗаписи.ДопКлассификация;
    Подскажите,пожалуйста, Как проставить субконто ко всем строчкам?!

Поделиться этой страницей