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

Хранилище

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

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



> Створення кнопки на формі табличної частини, на основі якої буде заповнення з іншого документа , БДУ 2.0.17.2 платформа 8.3.13.1513          
bandrah Подменю пользователя
сообщение 01.10.19, 14:53
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Україна
Спасибо сказали: 15 раз
Рейтинг: 9.8

Потрібно створити кнопку і до неї додати можливість заповнювати табличну частину на основі іншого документа. Документ ПеремещениеТоваров таб часть товары потрібно заповняти на основі даних ОтчетПроизводстваЗаСмену материалы, стандартний механізм не підходить, бо нада окрему кнопку з вибором документа і його заповнити ось код по якому пробую це зробити але не спрацьовує

Код
&НаСервере
Процедура Заполнить(Команда)
  
    //1_Вариант
    СписокДокументов = ПолучитьСписокДокументовНаСервере();
    ДокументОснование = СписокДокументов.ВыбратьЭлемент();
    Если ДокументОснование <> Неопределено Тогда
        ЗаполнитьПоДокументуНаСервере(ДокументОснование.Значение);
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьПоДокументуНаСервере(ДокументОснование)
    //при наличии одноименных реквизитов с одинаковыми типами в обоих документах можно прописать так
    ЗаполнитьЗначенияСвойств(Объект, ДокументОснование);
    
КонецПроцедуры

&НаСервере
Функция ПолучитьСписокДокументовНаСервере()
    Список = Новый СписокЗначений;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ОтчетПроизводстваЗаСменуМатериалы.Номенклатура,
                   |    ОтчетПроизводстваЗаСменуМатериалы.Счет,
                   |    ОтчетПроизводстваЗаСменуМатериалы.ЕдиницаИзмерения,
                   |    ОтчетПроизводстваЗаСменуМатериалы.Коэффициент,
                   |    ОтчетПроизводстваЗаСменуМатериалы.Количество,
                   |    ОтчетПроизводстваЗаСменуМатериалы.Ссылка
                   |ИЗ
                   |    Документ.ОтчетПроизводстваЗаСмену.Материалы КАК ОтчетПроизводстваЗаСменуМатериалы";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Список.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
    КонецЦикла;

    Возврат Список;
    
КонецФункции


Можливо хтось має робочий механізм для реалізації такої кнопки чи є ідеї щоб підправити даний?

Сообщение отредактировал Vofka - 02.10.19, 8:19

Макс1С Подменю пользователя
сообщение 01.10.19, 15:27
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 189
Из: Днепр
Спасибо сказали: 62 раз
Рейтинг: 58.6

bandrah @ Сегодня, 15:53 * ,
Советую покопать в сторону внешней обработки заполнения ТЧ.
Вот очень хороший пример:
[необходимо зарегистрироваться для просмотра ссылки]
только вместо выбора номенклатуры, вам нужен выбор документа, потом запрос по ТЧ Материалы одного документа и заполнение ТЧ текущего документа.А в таком запросе как у вас выберутся данные из всех документов ОтчетПроизводстваЗаСмену (запросом). И ЗаполнитьЗначенияСвойств() не сработает для табличных частей, только для реквизитов "шапки". Для копирования данных из одного документа в другой, можно делать так:
   
РасходнаяНакладная = Документы.РасходнаяНакладная.СоздатьДокумент();
    // заполняем реквизиты документа
    ЗаполнитьЗначенияСвойств(РасходнаяНакладная, ПриходнаяНакладная, , "Дата, Проведен, ПометкаУдаления");

    // заполняем табличную часть документа
    Для каждого СтрокаСоставаПриходнойНакладной из ПриходнаяНакладная.Состав Цикл
          
        СтрокаСоставаРасходнойНакладной = РасходнаяНакладная.Состав.Добавить();    

        // заполняем значения очередной строки табличной части
        ЗаполнитьЗначенияСвойств(СтрокаСоставаРасходнойНакладной, СтрокаСоставаПриходнойНакладной);      
    КонецЦикла;

взято из [необходимо зарегистрироваться для просмотра ссылки]

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

fly Подменю пользователя
сообщение 01.10.19, 19:44
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

Цитата(bandrah @ 01.10.19, 15:53) *
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();



Попробуйте методом ТабличнойЧасти Загрузить

Табличная часть (Tabular section)
Загрузить (Load)
Синтаксис:
Загрузить(<Таблица>)
Параметры:
<Таблица> (обязательный)
Тип: ТаблицаЗначений.
Таблица значений, откуда загружается табличная часть. Колонки таблиц совмещаются по именам.
Описание:
Загружает табличную часть из таблицы значений. При этом все прежние строки табличной части удаляются. При загрузке значения в колонках табличной части заполняются значениями из колонок таблицы значений с совпадающими именами.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:
Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.
Пример:
Состав.Загрузить(ТаблицаСостава);

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить();



Документ.ТаблЧасть.Загрузить(ВыборкаДетальныеЗаписи);



Цитата(bandrah @ 01.10.19, 15:53) *
бо нада окрему кнопку з вибором документа і його заповнити


по сути перед заполнением этот метод сразу очистит ТЧ от данных и заполнит одноименные Колонки значениями

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

bandrah Подменю пользователя
сообщение 02.10.19, 10:07
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Україна
Спасибо сказали: 15 раз
Рейтинг: 9.8

дякую за поради, буду пробувати про результати напишу пізніше

bandrah Подменю пользователя
сообщение 12.11.19, 17:37
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Україна
Спасибо сказали: 15 раз
Рейтинг: 9.8

Взяв механізм із документа Повернення товарів від покупця в кнопці заповнити є дві під кнопки заповнити по документу вцілому або додати із документа...

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


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

 

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