Как в 1С создать счета на оплату на основании реализаций через БСП?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в 1С создать счета на оплату на основании реализаций через БСП?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35266
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        в обработке по выбранным документам реализации создать документы счёт на оплату используя бсп

      • #35267
        bot_avaOdin — Одинэсник
        Участник

          Для создания документов «Счет на оплату» на основании выбранных документов «Реализация товаров и услуг» с использованием Библиотеки стандартных подсистем (БСП) в 1С, нужно выполнить следующие шаги:

          1. **Подготовка обработки и выбор документов реализации**

          В форме обработки должен быть элемент для выбора документов реализации (например, табличное поле с выборкой документов). Пользователь выбирает нужные документы.

          2. **Создание документов «Счет на оплату» на основании выбранных**

          Для создания документов «Счет на оплату» на основании документов реализации можно использовать стандартный механизм создания документов на основании (в БСП он реализован через модуль менеджера документа и подсистему «Создание документов на основании»).

          3. **Пример кода создания счетов на оплату на основании реализации**

          Процедура СоздатьСчетаНаОплату(ВыбранныеДокументыРеализации)
              Для Каждого ДокРеализации Из ВыбранныеДокументыРеализации Цикл
                  // Создаем новый документ "СчетНаОплатуПокупателю"
                  НовыйСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
          
                  // Заполняем реквизиты нового документа на основании документа реализации
                  // Можно использовать стандартный механизм создания на основании
                  // Если в конфигурации есть метод СоздатьНаОсновании, то можно так:
                  Если ДокРеализации.Ссылка.СоздатьНаОсновании <> Неопределено Тогда
                      НовыйСчет = ДокРеализации.Ссылка.СоздатьНаОсновании("СчетНаОплатуПокупателю");
                  Иначе
                      // Иначе заполняем реквизиты вручную
                      НовыйСчет.Контрагент = ДокРеализации.Контрагент;
                      НовыйСчет.Организация = ДокРеализации.Организация;
                      НовыйСчет.Дата = ТекущаяДата();
                      // Заполнить табличную часть товарами из реализации
                      Для Каждого СтрокаРеализации Из ДокРеализации.Товары Цикл
                          НоваяСтрока = НовыйСчет.Товары.Добавить();
                          НоваяСтрока.Номенклатура = СтрокаРеализации.Номенклатура;
                          НоваяСтрока.Количество = СтрокаРеализации.Количество;
                          НоваяСтрока.Цена = СтрокаРеализации.Цена;
                          // и другие необходимые реквизиты
                      КонецЦикла;
                  КонецЕсли;
          
                  // Записать и провести документ
                  НовыйСчет.Записать();
                  НовыйСчет.Провести();
          
                  // Можно добавить вывод сообщения об успешном создании
                  Сообщить("Создан счет на оплату №" + НовыйСчет.Номер + " от " + Формат(НовыйСчет.Дата, "ДФ=dd.MM.yyyy"));
              КонецЦикла;
          КонецПроцедуры
          

          4. **Использование подсистемы БСП для создания на основании**

          Если в вашей конфигурации используется БСП, то для создания документов на основании рекомендуется использовать общий модуль `СозданиеДокументовНаОсновании` из БСП.

          Пример вызова:

          Для Каждого ДокРеализации Из ВыбранныеДокументыРеализации Цикл
              НовыйДокумент = СозданиеДокументовНаОсновании.СоздатьДокументНаОсновании(
                  ДокРеализации.Ссылка,
                  "СчетНаОплатуПокупателю",
                  Истина // Проводить документ сразу
              );
              Если НовыйДокумент <> Неопределено Тогда
                  Сообщить("Создан счет на оплату №" + НовыйДокумент.Номер + " от " + Формат(НовыйДокумент.Дата, "ДФ=dd.MM.yyyy"));
              Иначе
                  Сообщить("Не удалось создать счет на оплату для документа " + ДокРеализации.Ссылка);
              КонецЕсли;
          КонецЦикла;
          

          5. **Регистрация команды в интерфейсе**

          Если обработка подключена как дополнительная обработка к документу «Реализация товаров и услуг», то можно добавить команду в интерфейс для вызова этой процедуры.

          ### Итог

          — Используйте стандартный механизм создания документов на основании из БСП (`СозданиеДокументовНаОсновании`).
          — Передавайте ссылку на документ реализации и тип создаваемого документа («СчетНаОплатуПокупателю»).
          — Проводите созданный документ, если требуется.
          — Обрабатывайте ошибки и выводите сообщения пользователю.

          Рекомендую посмотреть здесь:
          https://infostart.ru/public/2229492/
          https://infostart.ru/1c/articles/694647/
          https://infostart.ru/1c/articles/1382297/

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С