Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Создать несколько документов на основании          
scoodizzy619 Подменю пользователя
сообщение 04.01.25, 16:11
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 24
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 1

Работаю в 1С Предприятие, Управление небольшой фирмой для Украины, редакция 1.5.

Имею документы "Котировка" и "СчетНаОплату".
В документе "Котировка", указан список клиентов в реквизите "Клиент" ТЧ "Расходы"

Стоит задача на основании документа "Котировка" заполнить документ "СчетНаОплату", причем создать документов "СчетНаОплату" нужно столько сколько клиентов указано в документе "Котировка".

Возможно ли такое реализовать, подскажи?

Сообщение отредактировал Vofka - 06.01.25, 10:16

Profi_1C77 Подменю пользователя
сообщение 06.01.25, 9:32
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 84
Из: Черкассы
Спасибо сказали: 24 раз
Рейтинг: 24

scoodizzy619 @ 04.01.25, 16:11 * ,
Да, можно, Цикл обхода табличной части Котировка, при обходе цикла вызывать процедуру создания нового документа СчетНаОплату с заполнением табличной части + наверное проверку сделать что таких "документов" не было ранее создано.

scoodizzy619 Подменю пользователя
сообщение 06.01.25, 10:57
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 24
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 1

Profi_1C77 @ Сегодня, 9:32 * ,
Мне нужно чтобы и форма этих документов выводилась.

В процедуре ОбработкаЗаполнения я так понимаю такое не реализовать и нужно к примеру создавать кнопку на документе и через нее это выводить?

Profi_1C77 Подменю пользователя
сообщение 06.01.25, 11:31
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 84
Из: Черкассы
Спасибо сказали: 24 раз
Рейтинг: 24

scoodizzy619 @ Сегодня, 10:57 * ,
Ну во- первых такие вещи не пишутся в обработке заполнения, не "корректный" подход. Обычно пишутся обработка с признаком "заполнение объекта"; как вариант а лучше
по типу
Функция СведенияОВнешнейОбработке() Экспорт
        
    ИмяОбработки = ЭтотОбъект.Метаданные().Имя;
    Синоним = ЭтотОбъект.Метаданные().Синоним;
    Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОбработки);
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид             = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиСозданиеСвязанныхОбъектов();
    ПараметрыРегистрации.Версия             = "1.0.0.1";
    ПараметрыРегистрации.Наименование     = Синоним;
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    ПараметрыРегистрации.Информация         = "Создание на основании";
    
    ПараметрыРегистрации.Назначение.Добавить("Документ.НазваниеДокумента");
    
    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление         = Синоним;
    Команда.Идентификатор         = ИмяОбработки;
    Команда.Использование         = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();
    Команда.ПоказыватьОповещение = Истина;
    
    Возврат ПараметрыРегистрации;

КонецФункции


2 Уточните у Вас Обычные формы или Управляемые конфигурации ( разные подходы)

Пример что когда то писал давно :
    ОтборОбновить = Новый Структура("Обновить",Истина);
    
     Если Объект.Товары.НайтиСтроки(ОтборОбновить).Количество() =0 Тогда
          Сообщить ("Не выбраны позиции номенклатуры. Прервано. ",СтатусСообщения.Важное);
          Возврат;
     КонецЕсли;
    
    
    Если ЗначениеЗаполнено(Объект.Документ1С) Тогда
        ДокументОбъект = Объект.Документ1С.ПолучитьОбъект();
        
        ДокументОбъект.Товары.Очистить();
        ДокументОбъект.ВидыЦен.Очистить();
    Иначе    
        ДокументОбъект = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
        ДокументОбъект.Дата = ТекущаяДата();
        
    КонецЕсли;
    
     ДокументОбъект.Статус =  Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;

     Для Каждого СтрТовары Из Объект.Товары Цикл
         Если ЗначениеЗаполнено(СтрТовары.Номенклатура) и ЗначениеЗаполнено(СтрТовары.ВидНоменклатуры) и
             (СтрТовары.Обновить) Тогда
             // поищем дубляж
             СтрокаТЧ = ДокументОбъект.Товары.Найти(СтрТовары.Номенклатура,"Номенклатура");
            
             Если СтрокаТЧ = Неопределено Тогда
                 СтрДок = ДокументОбъект.Товары.Добавить();
                 ЗаполнитьЗначенияСвойств(СтрДок,СтрТовары);
                 СтрДок.ВидЦены                  = Объект.ВидЦены;
                 СтрДок.Упаковка             = СтрДок.Номенклатура.ЕдиницаИзмерения;
             Иначе
                 // сравним цены
                 Если СтрокаТЧ.Цена < СтрТовары.Цена Тогда  
                     СтрокаТЧ.Цена = СтрТовары.Цена;
                 КонецЕсли;
             КонецЕсли;
         КонецЕсли;    
     КонецЦикла;
    
        
    СтрВидыЦен  = ДокументОбъект.ВидыЦен.Добавить();
    СтрВидыЦен.ВидЦены = Объект.ВидЦены;
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    Сообщить (" Записан / обновлен документ цен ",СтатусСообщения.Информация);
    Объект.Документ1С = ДокументОбъект.Ссылка;

После выполнить ОткрытьФорму для Объект.Документ1С ; ( ссылка-документ)
либо собрать их в массив и открыть каждый документ что создан на основании в цикле перебором уже этого массива;

Profi_1C77 @ Сегодня, 11:22 * ,
пример открытия созданного документа
Результат = ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта",Новый Структура ("Ключ",Объект.Документ1С));


scoodizzy619 @ Сегодня, 10:57 * ,
- >>> и нужно к примеру создавать кнопку на документе и через нее это выводить?
как вариант да,
если не использовать БСП ( или их нету в вашей конфигурации)

scoodizzy619 Подменю пользователя
сообщение 06.01.25, 12:02
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 24
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 1

Profi_1C77 @ Сегодня, 11:31 * ,
Цитата(Profi_1C77 @ 06.01.25, 11:31) *
2 Уточните у Вас Обычные формы или Управляемые конфигурации ( разные подходы)

Формы управляемые

Profi_1C77 Подменю пользователя
сообщение 06.01.25, 12:09
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 84
Из: Черкассы
Спасибо сказали: 24 раз
Рейтинг: 24

scoodizzy619 @ Сегодня, 12:02 * ,
тогда БСП у Вас вероятно есть в конфигурации, идеально через Функция СведенияОВнешнейОбработке() Экспорт
Я б сделал бы если у вас мало опыта, сначала внешнюю обработку, в которой бы создал реквизит ССылкаНаДокументОснование
прописал бы процедуру создания/ заполнения документа СчетНаОплату,
а потом бы уже доработал как его внедрить в документ Котировка

scoodizzy619 Подменю пользователя
сообщение 10.01.25, 22:42
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 24
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 1

Profi_1C77 @ 06.01.25, 9:32 * ,

Хочу попробовать через Цикл. Впринципе получилось, формы открываются в количестве сколько самих строк.
Вот сама обработка:


Но мне нужно чтобы они открывались именно по количеству уникальных значение, если поставщики повторяются то не создавать еще.

И столкнулся с проблемой. Формы заполняются автоматически но мне нужно чтобы каждая форма заполнялась по разному в соответствии со строкой по которой она создавалась.

Если форма создалась по значению контрагента, к примеру, ТОВ "ДревоБуд" то в новой форме должно заполнится вся ТЧ строками по данному контрагенту с документа основания.

Profi_1C77 Подменю пользователя
сообщение 13.01.25, 9:32
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 84
Из: Черкассы
Спасибо сказали: 24 раз
Рейтинг: 24

scoodizzy619 @ 10.01.25, 22:42 * ,
Обычно создается ТЗ в которой сначала группируются схожие объекты- значения типа "Поставщик/Контрагент/ Товар " а потом уже они уже в цикле обходом по ТЗ создаются документы и переносятся данные

scoodizzy619 Подменю пользователя
сообщение 13.01.25, 18:42
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 24
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 1

Profi_1C77 @ Сегодня, 9:32 * ,
Можно какой-то небольшой пример, как это сделать.
Голова уже просто не варит.

Начал так:
- создал ТЗ
- дальше нужно добавить по идеи колонки аналогичные табличной части документа основания (Котировка)?
НовыйТЗ = Новый ТаблицаЗначений;
НовыйТЗ.Колонки.Добавить("Услуга", "СправочникСсылка.Номенклатура");

Profi_1C77 Подменю пользователя
сообщение 14.01.25, 9:44
Сообщение #10

Говорящий
***
Группа: Пользователи
Сообщений: 84
Из: Черкассы
Спасибо сказали: 24 раз
Рейтинг: 24

scoodizzy619 @ Вчера, 18:42 * ,
Можно, примеры в интернете , их полно.
На Вашем коде , тоже можно, но вы его "картинкой" с сообщениях ставите а не текстом, как бы ...
Дайте код, гляну по возможности;
А лучше все таки самому на примерах в интернете, сайтов полно.

scoodizzy619 Подменю пользователя
сообщение 14.01.25, 9:49
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 24
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 1

Profi_1C77 @ Сегодня, 9:44 * ,
Примеров много, знаю. Но найти похожее задание не доводилось.

Процедура СчетПоРасходам(Команда)
    СчетПоРасходамНаСервере();
    УникальныеНаименования = Новый Соответствие;
    Для Каждого СтрРасходы ИЗ Объект.Расходы Цикл            
        Таблица = УникальныеНаименования.Получить(СтрРасходы.Поставщик);
                
        Форма = ПолучитьФорму("Документ.СчетНаОплатуПоставщика.Форма.ФормаДокумента",,,Новый УникальныйИдентификатор());
        ////
        Счет = Форма.Объект;
        Счет.Контрагент = Объект.Клиент;
        Счет.ДокументОснование = Объект.Ссылка;
        ////
        ////    
        ТЧЗапасы = Счет.Запасы;
        НоваяСтр = ТЧЗапасы.Добавить();
        НоваяСтр.Номенклатура = СтрРасходы.Услуга;
        НоваяСтр.Количество = СтрРасходы.Количество;
        ////
        Форма.Открыть();
    КонецЕсли
    КонецЦикла

  КонецПроцедуры

Profi_1C77 Подменю пользователя
сообщение 14.01.25, 12:07
Сообщение #12

Говорящий
***
Группа: Пользователи
Сообщений: 84
Из: Черкассы
Спасибо сказали: 24 раз
Рейтинг: 24

scoodizzy619 @ Сегодня, 9:49 * ,
ответил в "личку"

Спасибо сказали: scoodizzy619,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
3 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 1 scoodizzy619

 

RSS Текстовая версия Сейчас: 16.01.25, 1:36
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!