8.х Программный ввод документов

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

  1. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Можно ли чтобы при программном создании документа Отчет о розничных продажах счета учета заполнялись значениями по умолчанию? Конфигурация БП2.0
    Код:
    Новыйдокумент = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
    Новыйдокумент.ВидОперации 			   = Перечисления.ВидыОперацийОтчетОРозничныхПродажах.ОтчетККМОПродажах; 
    новыйдокумент.Дата= дата;
    новыйдокумент.Склад = Склад;
    новаястрокатабличнойчасти=новыйдокумент.Товары.Добавить();
    //заполняем строки
    новыйдокумент.Записать();
    
  2. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Можно...
    Их надо вытаскивать из регистра сведений "Счета учета номенклатуры".
    Как конкретно, сейчас так сразу не скажу.
    Может копать в сторону события "ПриИзменении" поля "номенклатура". Ведь когда интерактивно меняем номенклатуру, счета автоматически устанавливаются.
  3. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    в модуле документа посмотрите процедуру ЗаполнитьСчетаУчетаНоменклатуры. ничего вытаскивать не надо, уже всё написано :)
  4. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Конечно, Вы правы...Я, тем не менее, не имел в виду напрямую прописывать это "вытаскивание". Да, это уже прописано...Просто посмотреть, как там сделано, обратиться к нужным процедурам...
  5. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Я так думаю, такой способ мне не поможет, потому что это внешняя обработка, заполняющая мой документ из текстового файла.
  6. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Почему же не поможет?
  7. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Тогда подскажите, что где прописать?
  8. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Скопируйте необходимую процедуру в модуль обработки и обращайтесь к ней.
  9. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Там на самом деле не одна процедура, а несколько...
    Ну т.е. из одной вызывается вторая, из второй третья и т.д. Придется их все копировать...Правда там много всего заполняется, может и не нужного в конкретной ситуации.
    Хотя я посмотрел, они не большие ... Можно и скопировать..
  10. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    А-а-а..нет, прошу прощения, там можно проще....

    Сейчас покажу....
    5 сек.
  11. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Можно так:
    Код:
    НоваяСтрокаТабличнойЧасти = НовыйДокумент.Товары.Добавить();
    //заполняем строки
    НоваяСтрокаТабличнойЧасти.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000001");
    
    //ВОТ ЗАПОЛНЕНИЕ СЧЕТОВ!!!
    НовыйДокумент.ЗаполнитьСчетаУчетаВСтрокеТабЧасти(НоваяСтрокаТабличнойЧасти, Истина);
    
    Но только не забывайте, пожалуйста, что там еще мно-о-ого всяких реквизитов надо заполнять (Валюта документа, ТипЦен, Счет кассы, УчитыватьНДС и т.д.).
  12. TopicStarter Overlay
    mazza
    Offline

    mazza Опытный в 1С

    Регистрация:
    4 фев 2009
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    А как для найденного по коду товара автоматически выбирать коэффициент, единицу измерения, розничную цену?
  13. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Ну у документа "Отчет о розничных продажах" нет среди реквизитов таб части Коэффициента и Единицы измерения.
    Для того, чтобы встала цена, сначала надо установить Тип цен документа (помните, я говорил, что еще много чего надо устанавливать; вот...без типа цен цена не встанет).

    Устанавливаем тип цен:
    Код:
    Новыйдокумент.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Реализации");
    
    Теперь и цену можно установить:
    Код:
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(НоваяСтрокаТабличнойЧасти, Новыйдокумент, Новыйдокумент.мВалютаРегламентированногоУчета);
    
    Теперь логично будет рассчитать сумму. Но без количества сумма = 0. Поэтому устанавливаем количество:
    Код:
    НоваяСтрокаТабличнойЧасти.Количество = 3;
    
    Теперь можем рассчитать сумму:
    Код:
    ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(НоваяСтрокаТабличнойЧасти, Новыйдокумент);
    
    P.S. Опять же скажу... не забудьте про другие реквизиты...
    Вот НДС, например, не хватает :)

    Вообще я это всё (многое) взял из обработчика события "При изменении" номенклатуры....
    Посмотрите... Там, вроде не так сложно...

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