База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С создать счета на оплату на основании реализаций через БСП?
- В этой теме 1 ответ, 2 участника, последнее обновление 6 дней, 1 час назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
25 декабря 2025 в 14:30 #35266
в обработке по выбранным документам реализации создать документы счёт на оплату используя бсп
-
25 декабря 2025 в 14:30 #35267
Для создания документов «Счет на оплату» на основании выбранных документов «Реализация товаров и услуг» с использованием Библиотеки стандартных подсистем (БСП) в 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/
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.