Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
2 / 2 / 1
Регистрация: 27.03.2018
Сообщений: 22
1

Копирование строк из табличной части

23.04.2018, 17:28. Показов 4210. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, ув. Форумчане.

Может кто поможет с такой проблемой или хотябы подскажет куда копать.

Имеется ссылка "ДокументСсылка.ЗаказПокупателя", из данного документа необходимо вытащить строки с номенклатурой, количеством и ценами в другой ЗаказПокупателя (Из формы документа которого и производится действие).

Ума не приложу как это сделать.

Заранее спасибо за ответ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2018, 17:28
Ответы с готовыми решениями:

Копирование данных из ячейки одной Табличной Части на форме в такую же ячейку другой Табличной части на этой же форме
Всех с Новым годом и грядущим Рождеством пособите начинающему: затык такой - НА форме есть две...

Копирование ячеек в табличной части документа
Как реализовать механизм копирования наподобие Excel в табличной части документа? Имеется колонка1,...

Значение строки табличной части получить в табличной части другого документа
Есть документ ПриходнаяНакладная (товар приходит от поставщика по его цене), с табличной частью...

Программное заполнение табличной части документа из табличной части справочника
Доброго! Ситуация, поставившая меня в тупик. Имеем 1с 8.2 УФ Имеем справочник "Работ" Имеем...

2
2135 / 1475 / 526
Регистрация: 16.01.2015
Сообщений: 6,317
23.04.2018, 17:40 2
Matthevv, Запрос к ТЧ Товары документа заказ покупателя где ссылка ваша ссылка на нужный документ
1
2 / 2 / 1
Регистрация: 27.03.2018
Сообщений: 22
25.04.2018, 14:52  [ТС] 3
Вот решение вопроса. Работает на v8.3 УНФ. Максимально снабдил комментариями.
Осторожно доработать напильником под себя и можно работать.

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
&НаКлиенте
Процедура ВыборДозаказа (Команда) 
ПараметрыОтбора = Новый Структура("СостояниеЗаказа", ПолучитьСостояниеЗаказа());
ПараметрыФормы = Новый Структура("Отбор", ПараметрыОтбора);
ОткрытьФорму("Документ.ЗаказПокупателя.ФормаВыбора",ПараметрыФормы, , ,,, Новый ОписаниеОповещения("ДобавитьДозаказВДокументКлиент",ЭтотОбъект));
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьСостояниеЗаказа()
Возврат Справочники.СостоянияЗаказовПокупателей.НайтиПоНаименованию("ДОЗАКАЗ");
КонецФункции
 
&НаКлиенте
Процедура ДобавитьДозаказВДокументКлиент (ДокИсточникСсылка, ДополнительныеПараметры) Экспорт
    Если НЕ ДокИсточникСсылка = Неопределено Тогда
        //Получение реквизита НомерЗаказаНаСайте для копируемого документа
        НомерДозаказа = ПолучитьНомерЗаказаНаСайте(ДокИсточникСсылка);
        //Добавление группы
        ДокОсновнойСсылка = Объект.Ссылка;
        ЗапасыИспользуетсяГруппировка = Истина;
        Строки = Объект.Запасы.НайтиСтроки(Новый Структура("ЭтоРазделитель", Истина));
        Строка = Объект.Запасы.Добавить();
        Строка.НомерВариантаКП = ТекущийВариантКП;
        Строка.Номенклатура = "Дозаказ №" + НомерДозаказа; 
        Строка.ЭтоРазделитель = Истина;
        Строка.НомерКартинки = 1;
        Строка.НомерВариантаКП = ТекущийВариантКП;
        Если Элементы.Запасы.ВыделенныеСтроки.Количество() > 1 Тогда
            Для каждого ИдентификаторСтроки Из Элементы.Запасы.ВыделенныеСтроки Цикл
                Строка = Объект.Запасы.НайтиПоИдентификатору(ИдентификаторСтроки);
                Объект.Запасы.Сдвинуть(Объект.Запасы.Индекс(Строка), Объект.Запасы.Количество() - Строка.НомерСтроки);
            КонецЦикла;
        КонецЕсли; 
        ОбновитьУпорядочиваниеСтрокТаблицаЗапасы();
        ОбновитьИтогиКлиент();
        Элементы.Запасы.ТекущаяСтрока = Строка.ПолучитьИдентификатор();
        Элементы.Запасы.ВыделенныеСтроки.Очистить();
        Элементы.Запасы.ВыделенныеСтроки.Добавить(Строка.ПолучитьИдентификатор());
        ЗаписатьКоманда(ИСТИНА);
        //Копирование строк 
        ДобавитьДозаказВДокументСервер(ДокИсточникСсылка, ДокОсновнойСсылка);
        //Обновление формы и расчет доставки, дополнение перечня дозаказов 
        ЭтаФорма.Прочитать();
        Если Объект.ПереченьДозаказов = "" Тогда 
            Объект.ПереченьДозаказов = НомерДозаказа;
        Иначе
            Объект.ПереченьДозаказов = Объект.ПереченьДозаказов + " + " + НомерДозаказа;
        КонецЕсли;
        РассчитатьСтоимостьДоставки(ИСТИНА);
        ЗаписатьКоманда(ИСТИНА);
    КонецЕсли;
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьНомерЗаказаНаСайте(ДокИсточникСсылка)
    Запрос = Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |   ЗаказыПокупателейССайта.НомерЗаказаНаСайте КАК НомерЗаказаНаСайте
    |ИЗ
    |   РегистрСведений.ЗаказыПокупателейССайта КАК ЗаказыПокупателейССайта
    |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя1
    |           ПО ЗаказыПокупателейССайта.ЗаказПокупателя = ЗаказПокупателя1.Ссылка
    |ГДЕ
    |   ЗаказПокупателя1.Ссылка = &ЗаказПокупателя";
    Запрос.УстановитьПараметр("ЗаказПокупателя", ДокИсточникСсылка);
    РезультатЗапроса = Запрос.Выполнить().Выгрузить()[0].Получить(0);
    Возврат РезультатЗапроса;
КонецФункции
 
 
&НаСервереБезКонтекста
Процедура ДобавитьДозаказВДокументСервер(ДокИсточникСсылка, ДокОсновнойСсылка)
//Получение документов
ДокОсновнойОбъект = ДокОсновнойСсылка.ПолучитьОбъект();
ДокИсточникОбъект = ДокИсточникСсылка.ПолучитьОбъект();
//Цикл по строкам документа
Для каждого ТекущаяСтрока из ДокИсточникОбъект.Запасы Цикл                                               
    Стр = ДокОсновнойОбъект.Запасы.Добавить();                                           
    Стр.Номенклатура = ТекущаяСтрока.Номенклатура;              
    Стр.Характеристика = ТекущаяСтрока.Характеристика;
    Стр.Количество = ТекущаяСтрока.Количество;                  
    Стр.ЕдиницаИзмерения = ТекущаяСтрока.ЕдиницаИзмерения;         
    Стр.Цена = ТекущаяСтрока.Цена;
    Стр.ПроцентСкидкиНаценки = ТекущаяСтрока.ПроцентСкидкиНаценки;
    Стр.СтавкаНДС = ТекущаяСтрока.СтавкаНДС;
    Стр.СуммаСкидкиНаценки = ТекущаяСтрока.СуммаСкидкиНаценки;
    Стр.СуммаНДС = ТекущаяСтрока.СуммаНДС;
    Стр.Сумма = ТекущаяСтрока.Сумма;
    Стр.Всего = ТекущаяСтрока.Всего;
    Стр.ДатаОтгрузки = ДокОсновнойОбъект.ДатаОтгрузки;
КонецЦикла; 
ДокОсновнойОбъект.Записать();
КонецПроцедуры
0
25.04.2018, 14:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2018, 14:52
Помогаю со студенческими работами здесь

Автоматическое заполнение табличной части документа из табличной части другого
Добрый день. Совсем недавно начал изучать 1С и пока не могу найти решения собственной задачи)...

Обход строк табличной части
Есть документ Заказы его табличная часть Товары Я пишу процедуру - обработку проверки заполнения...

Дублирование строк в табличной части справочника 1С !
Задача такая, есть табличная часть с двумя реквизитами, "Продукт" и "Количество", при добавление в...

Автозаполнение строк табличной части документа. Как из Пользователя сделать Сотрудника.
Задача: Сделать так, чтобы при добавлении в табличную часть документа строки заполнялись некоторые...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru