Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124

Как создать на основании нескольких документов, один документ 1С Бухгалтерия

05.12.2024, 08:01. Показов 5951. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть форма списка на ней заказы, нужно при выделении нескольких строк и нажатии кнопки "На основании группы" создавать один СчетНаОплатуПокупателю. Данные брать из выделенных строк и переносить в счет.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2024, 08:01
Ответы с готовыми решениями:

Создать документ на основании нескольких документов
Доброго времени суток! Необходимо создать документ на основании одного или нескольких документов, которые выделит пользователь ...

Создать макрос, который извлекает оглавление из нескольких документов и помещает их в один новый документ
Добрый день. Продолжаю обучаться VBA и сейчас у меня вот такие сложности, надеюсь на вашу помощь. На скриншотах привёден документ1 в...

Макрос, который извлекает оглавление из нескольких документов, и помещает их в один новый документ
Здравствуйте, помогите написать макрос, который будет извлекать оглавление из нескольких документов в один. Нумерация страниц в...

42
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:03  [ТС]
Студворк — интернет-сервис помощи студентам
как в типовой бухгалтерии вот есть заполнить-добавить из поступления, открываются поступления выбираю 1 или несколько и все в табличную падает
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:08
Какая конфигурация? (Читаю в заголовке темы - БП, но в БП нет заказов)
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:08  [ТС]
polax, Заказы я уже создал документ
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:09
Цитата Сообщение от Kirusha98 Посмотреть сообщение
как в типовой бухгалтерии
А самому посмотреть в отладке?
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:09  [ТС]
polax, вот
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:22
Kirusha98, О! Передают массивом. А в массиве что? Открой

Добавлено через 2 минуты
Фигня какая-то. Массив - это ты сам назначил ВыбранноеЗначение = Массив. Какого черта? Убери равенство и Массив, оставь только ВыбранноеЗначение

Добавлено через 2 минуты
Посмотрел в демо БП. Заполнение по РТУ и ПТУ отключен множественный выбор, можно выбрать только одно значение и, соответственно, в ВыбранноеЗначение не ТЗ переданная через временное хранилище, а прямая ссылка на ОДИН документ

И вообще на скрине какой-то странный код. Покажи реальный И смотри не переменные а поставь точку останова и на ВыбранноеЗначение ПКМ - ВычислитьВыражение. Если структура в выражении, нажми плюсик, покажи что в структуре
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:22  [ТС]
polax, вся информация о выбранном объекте, причем в конце та самая ТЧ
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия   Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:25  [ТС]
я ничего не назначал)
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:27
А множественный выбор работает? Можно выбрать несколько значений? Покажи код, как открываешь форму выбора. И код ОбработкиВыбора. И что в значении ВыбранноеЗначение при множественном выборе
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:30  [ТС]
polax,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
 
    Если ИсточникВыбора.ИмяФормы = "Обработка.ПодборНоменклатуры.Форма.Форма" Тогда
        ОбработкаВыбораПодборВставкаИзБуфераНаСервере(ВыбранноеЗначение, ИсточникВыбора.ИмяТаблицы);
    ИначеЕсли ИсточникВыбора.ИмяФормы = "Документ.СчетНаОплатуПокупателю.Форма.ФормаРеквизитыПечатиQRКод" Тогда
        ОбработкаВыбораРеквизитыОрганизацииКонтрагента(ВыбранноеЗначение, ИсточникВыбора);
    ИначеЕсли ИсточникВыбора.ИмяФормы = "Документ.ПоступлениеТоваровУслуг.Форма.ФормаВыбора"
        Или ИсточникВыбора.ИмяФормы = "Документ.СчетНаОплатуПоставщика.Форма.ФормаВыбора"
        Или ИсточникВыбора.ИмяФормы = "Документ.РеализацияТоваровУслуг.Форма.ФормаВыбора" Тогда
        ОбработкаЗаполненияТабличнойЧастиНаСервере(ВыбранноеЗначение, ИсточникВыбора.ИмяТаблицы);
    ИначеЕсли ИсточникВыбора.ИмяФормы = "Обработка.ПодборОсновныхСредств.Форма.Форма" Тогда
        ОбработкаВыбораПодборОСНаСервере(ВыбранноеЗначение);
    КонецЕсли;
    Если ИсточникВыбора.ИмяФормы = "Документ.Заказы.Форма.ФормаВыбора" Тогда
    Ссылка = СоздатьОбщийДок(ВыбранноеЗначение);
        Если Ссылка <> Неопределено Тогда
        ОткрытьФорму("Документ.СчетНаОплатуПокупателю.Форма.ФормаДокумента",Новый Структура ("Ключ",Ссылка),ЭтаФорма);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
 
&НаКлиенте
Процедура ТоварыЗаполнитьИзЗаказа(Команда)
    ПараметрыФормыВыбора = Новый Структура;
    ПараметрыФормыВыбора.Вставить("ЗакрыватьПриВыборе", Ложь);
    ПараметрыФормыВыбора.Вставить("МножественныйВыбор", Истина);
    ОткрытьФорму("Документ.Заказы.ФормаВыбора",ПараметрыФормыВыбора,ЭтаФорма,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
 
 
&НаСервере
Функция СоздатьОбщийДок(ВыбранноеЗначение)
    ТЗ = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);
    Док = РеквизитФормыВЗначение("Объект");
    // заполняем все общие реквизиты, те что не в табличной части дока, типа Организация, Клиент, Договор и т.д. //Проверяем, чтобы в счете были только данные //из заказов одного клиента по одному договору и от одной организации
    //Примерно: Док.Дата = ТекущаяДата(); 
    //Док.Контрагент = ТЗ[0].Контрагент; и т.п.
    Для Каждого Заказ ИЗ ТЗ Цикл
        Если Заказ.Контрагент = Док.Контрагент И Заказ.Организация = Док.Организация 
        И Заказ.Договор  = Док.Договор Тогда
        НовСтрока = Док.Товары.Добавить();
            Для Каждого Стр ИЗ Заказ.ТоварыУслуги Цикл
            ЗаполнитьЗначенияСвойств(НовСтрока ,Стр);
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    НачатьТранзакцию();
    Попытка
        //Док.Записать(РежимЗаписиДокумента.Проведение);
        ЗафиксироватьТранзакцию();
        Возврат Док.Ссылка;
    Исключение
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        ОтменитьТранзакцию();
        Возврат Неопределено;
    КонецПопытки;
КонецФункции;
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:31
Цитата Сообщение от Kirusha98 Посмотреть сообщение
я ничего не назначал)
Т.е. утверждаешь, что выделенные процедуры - это стандартные процедуры и параметры в коде БП? Не верю
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:31  [ТС]
polax, вот
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:35
Kirusha98, Ну и где в приведенном коде ВыбранноеЗначение = Массив как на скрине (стэк вызова)?
Еще раз. ПОКАЖИ что в ВЫБРАННОЗНАЧЕНИЕ когда выбираешь несколько заказов

Добавлено через 1 минуту
Kirusha98, Это трэш какой-то! Читать по русски можешь? Я говорю про ВыбранноеЗначение, а не значение с точкой ПРОСТО ВЫБРАННОЕЗНАЧЕНИЕ. Неужели так сложно
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:36
Толькл то что в рамке. Точку и зачеркнутое УБЕРИ
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:37  [ТС]
polax, вот несколько
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия   Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:39  [ТС]
так все тот же массив, хоть с точкой хоть без точки
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
12.12.2024, 23:41  [ТС]
...
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:47
Ну наконец-то. Значит передают Массивом (странно, но, видимо, доработка, потому что 1С не станет передавать массивом. Ну да ладно) Тогда перебирай массив а не ТЗ
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
&НаСервере
Функция СоздатьОбщийДок(ВыбранноеЗначение)
  
    Док = РеквизитФормыВЗначение("Объект");
    // заполняем все общие реквизиты, те что не в табличной части дока, типа Организация, Клиент, Договор и т.д. //Проверяем, чтобы в счете были только данные //из заказов одного клиента по одному договору и от одной организации
    //Примерно: Док.Дата = ТекущаяДата(); 
    //Док.Контрагент = ТЗ[0].Контрагент; и т.п.
    Для Каждого Заказ ИЗ ВыбранноеЗначение Цикл
       
        НовСтрока = Док.Товары.Добавить();
            Для Каждого Стр ИЗ Заказ.ТоварыУслуги Цикл
            ЗаполнитьЗначенияСвойств(НовСтрока ,Стр);
            КонецЦикла;
        
    КонецЦикла;
    НачатьТранзакцию();
    Попытка
        //Док.Записать(РежимЗаписиДокумента.Проведение);
        ЗафиксироватьТранзакцию();
        Возврат Док.Ссылка;
    Исключение
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        ОтменитьТранзакцию();
        Возврат Неопределено;
    КонецПопытки;
КонецФункции;
Добавлено через 4 минуты
Ну и в процедуре ОбработкаВыбора не надо открывать док, он уже открыт.
Т.е. вот это
Цитата Сообщение от Kirusha98 Посмотреть сообщение
Если ИсточникВыбора.ИмяФормы = "Документ.Заказы.Форма.ФормаВыбора" Тогда
    Ссылка = СоздатьОбщийДок(ВыбранноеЗначение);
        Если Ссылка <> Неопределено Тогда
        ОткрытьФорму("Документ.СчетНаОплатуПокуп ателю.Форма.ФормаДокумента",Новый Структура ("Ключ",Ссылка),ЭтаФорма);
        КонецЕсли;
    КонецЕсли;
Замени на
1C
1
СоздатьОбщийДок(ВыбранноеЗначение);
А Функцию СоздатьОбщийДок(ВыбранноеЗначение) замени на Процедуру с тем же кодом, строки Возврат удали
0
Эксперт 1С
7181 / 1783 / 650
Регистрация: 16.01.2015
Сообщений: 7,357
12.12.2024, 23:54
Посмотрел из любопытства. Это, скорей всего, доработка и выбранное значение - массив. Потому что вот на скрине стандартная передача Выбранного значения при множественном выборе (подбор номенклатуры) из демо БП 3.0.
С массивом может не сработать , например, при публикации на веб сервисе
Миниатюры
Как создать на основании нескольких документов, один документ 1С Бухгалтерия  
0
-1 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 124
13.12.2024, 00:02  [ТС]
polax, я правильно понял перебрать ?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
&НаСервере
Процедура СоздатьОбщийДок(ВыбранноеЗначение)
  
    Док = РеквизитФормыВЗначение("Объект");
    // заполняем все общие реквизиты, те что не в табличной части дока, типа Организация, Клиент, Договор и т.д. //Проверяем, чтобы в счете были только данные //из заказов одного клиента по одному договору и от одной организации
    //Примерно: Док.Дата = ТекущаяДата(); 
    //Док.Контрагент = ТЗ[0].Контрагент; и т.п.
    Для Каждого Заказы ИЗ ВыбранноеЗначение Цикл
       
        НовСтрока = Док.Товары.Добавить();
        Для Каждого Стр ИЗ Заказы.ТоварыУслуги Цикл 
            
            НовСтрока.Количество = Стр.Количество;
            НовСтрока.СтавкаНДС = Стр.НДС;
            НовСтрока.Сумма = Стр.СуммаБезНДС;
            НовСтрока.СуммаНДС = Стр.СуммаИтого;
            НовСтрока.Номенклатура = Стр.Товары;
            НовСтрока.Цена = Стр.ЦенаЗаШтуку;
            ЗаполнитьЗначенияСвойств(НовСтрока ,Стр);
            КонецЦикла;
        
    КонецЦикла;
    НачатьТранзакцию();
    Попытка
        //Док.Записать(РежимЗаписиДокумента.Проведение);
        ЗафиксироватьТранзакцию();
    Исключение
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        ОтменитьТранзакцию();
    КонецПопытки;
КонецПроцедуры;
в таком случае ничего не добавляется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2024, 00:02

Создать на основании Бухгалтерия 8.2
Добрый день! Мне требуется написать обработку для документов &quot;Реализация товаров и услуг&quot; при условии, что в поле комментарий есть...

как из нескольких документов сделать один?
значится, проблема такая: есть несколько шаблонов, отдельных докуметов doc необходимо из программы сляпать из них один, поскольку в...

Как из выбранной строки документа создать документ на основании с залоненными полями?
Подскажи пожалуйста как из выбранной строки документа создать документ на основании с заполненными полями?

Как создать документ из частей других документов?
Важен любой совет. как можно создать документ в который вставлены фрагменты из других документов и что для этого нужно.

Как вывести данные из нескольких таблиц в один документ
Здраствуйте! Есть несколько Windows Form и в каждой форме есть DataGridView, а таблицы в этих DataGridView связаны между собой (Базы данных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru