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

Хранилище

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

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



> Не получается создать форму обработки и заполнить её табличную часть данными          
Lamozavrik Подменю пользователя
сообщение 11.01.21, 15:48
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте всем, уважаемые форумчане. Заранее прошу прощения и не кидаться камнями, потому что знаю что задача плёвая, но не могу решить, так как в программировании 1С совсем чайник. Собственно сама задача. Мне нужно создать форму обработки, заполнить её табличную часть данными в цикле и открыть её модально. Вроде всё просто, но не выходит заполнить табличную часть.
1С 8.2.19.130, Форма обработки обычная. Создал я эту форму с названием ФормаСпецификации. В этой форме есть табличная часть (Спецификация). Далее создаю табличную часть, называю её Спецификация, там всего 2 реквизита (НомерЯщика и НеттоЯщика), и в свойствах формы в табличной части, в поле "Данные" выбираю её. Необходимо при нажатии кнопки чтобы эта форма вывелась модально и заполнились данные табличной части. Вот процедура при нажатии кнопки.
Процедура СформироватьСпецификацию(Элемент)
        
        ФормаСпецификации = Обработки.ИнтерфейсМаркировки.ПолучитьФорму("ФормаСпецификации");
    
    Для каждого ТекСтрока из Товары Цикл
        СтрокаТабличнойЧасти = Спецификация.Добавить();
        СтрокаТабличнойЧасти.НомерЯщика = Число(ТекСтрока.ПорядковыйНомер);
        СтрокаТабличнойЧасти.НеттоЯщика = Число(ТекСтрока.КоличествоNetto);
    КонецЦикла;
    
    ФормаСпецификации.ОткрытьМодально();

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


Форма открывается, но табличная часть пустая. Не понимаю что не так. Заранее спасибо!

Сообщение отредактировал Vofka - 12.01.21, 7:59

denis84 Подменю пользователя
сообщение 11.01.21, 16:16
Сообщение #2

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

Lamozavrik @ Сегодня, 15:48 * ,
Добрый день! У Вас нет объекта из которого получать данные(т.е. документа из которого необходимо прочитать табличную часть).

   Док = СсылкаНаОбъект;  // реквизит обработки - ссылка на документ из которого надо прочитать табличную часть
  
   Для каждого Стр Из Док.Товары Цикл // Цикл обработки табличной части "Товары"
       НоваяСтр = Форма.Спецификация.Добавить();
       НоваяСтр.НомерСтроки = Стр.НомерСтроки;
       НоваяСтр.Номенклатура = Стр.Номенклатура.Наименование;
       НоваяСтр.Кво = 0;
       НоваяСтр.КвоДокумент = Стр.Количество;
   КонецЦикла;
   Форма.Открыть();


Если я Вас правильно понял

Сообщение отредактировал denis84 - 11.01.21, 16:19

Lamozavrik Подменю пользователя
сообщение 11.01.21, 16:23
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

denis84 @ Сегодня, 16:16 * ,
Простите, не совсем понимаю. Данные у меня берутся с другой формы. Если формировать документ с макета, то всё ок.
Товары - это тоже табличная часть. Если выводить в цикле через "Сообщить", то всё нормально выводится. Я просто её строки перебираю в цикле и хочу этими данными заполнить табличную часть другой формы.

denis84 Подменю пользователя
сообщение 11.01.21, 16:28
Сообщение #4

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

Lamozavrik @ Сегодня, 16:23 * ,
"Товары" табличная часть этой формы? Попробуйте написать "Форма.Товары"

Lamozavrik Подменю пользователя
сообщение 11.01.21, 16:35
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

denis84 @ Сегодня, 16:16 * ,
Сиситема такая: оператор взвешивает товар, вес и номер ящика заполняются в табличную часть "Товары", и эти данные выводятся в форме "Товары". Далее я беру эти данные с табличной части "Товары" и перебираю в цикле. И вот "ТекСтрока" - Это одна строка этих данных. Мне этими данными нужно заполнить другую табличную часть (Спецификация) и вывести эти данные в форме "ФормаСпецификации". Только вот при открытии эта табличная часть пустая. Не заполняется

Цитата(denis84 @ 11.01.21, 16:28) *
"Товары" табличная часть этой формы? Попробуйте написать "Форма.Товары"

Данные оттуда берутся, всё нормально. Выводятся в цикле через "Сообщить". Проблема в том, что не выходит заполнить этими данными другую таблицу
ФормаСпецификации = Обработки.ИнтерфейсМаркировки.ПолучитьФорму("ФормаСпецификации"); //Получаю новую форму
    
    Для каждого ТекСтрока из Товары Цикл //В цикле перебираю данные из табличной части "Товары". В "ТекСтрока" всё присутствует
        СтрокаТабличнойЧасти = Спецификация.Добавить(); //Добавляю строку в табличную часть "Спецификации"
        СтрокаТабличнойЧасти.НомерЯщика = Число(ТекСтрока.ПорядковыйНомер); //Заполняю значения реквизитов
        СтрокаТабличнойЧасти.НеттоЯщика = Число(ТекСтрока.КоличествоNetto);
    КонецЦикла;

ФормаСпецификации.ОткрытьМодально(); //Вывожу форму, но табличная часть пустая


При этом ошибок никаких нет

denis84 Подменю пользователя
сообщение 11.01.21, 16:43
Сообщение #6

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

Lamozavrik @ Сегодня, 16:35 * ,

ФормаСпецификации = ЭтотОбъект.ПолучитьФорму("ФормаСпецификации"); //Получаю новую форму
    
    Для каждого ТекСтрока из Товары Цикл //В цикле перебираю данные из табличной части "Товары". В "ТекСтрока" всё присутствует
        СтрокаТабличнойЧасти = ФормаСпецификации.Спецификация.Добавить(); //Добавляю строку в табличную часть "Спецификации"
        СтрокаТабличнойЧасти.НомерЯщика = Число(ТекСтрока.ПорядковыйНомер); //Заполняю значения реквизитов
        СтрокаТабличнойЧасти.НеттоЯщика = Число(ТекСтрока.КоличествоNetto);
    КонецЦикла;

ФормаСпецификации.ОткрытьМодально();

Lamozavrik Подменю пользователя
сообщение 11.01.21, 16:48
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

denis84 @ Сегодня, 16:43 * ,
Пишет что Поле объекта не найдено (НомерЯщика), хотя реквизиты формы есть, реквизиты табличной части есть...

denis84 Подменю пользователя
сообщение 11.01.21, 16:53
Сообщение #8

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

Lamozavrik @ Сегодня, 16:48 * ,
Надо смотреть обработку! Может мы разговариваем о разных вещах (не понимаем друг друга). Киньте мне на почту в личку написал адрес

Сообщение отредактировал denis84 - 11.01.21, 16:58

Lamozavrik Подменю пользователя
сообщение 11.01.21, 17:08
Сообщение #9

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

denis84 @ Сегодня, 16:53 * ,
Сейчас выгружу и кину

denis84 @ Сегодня, 16:53 * ,
Спасибо. Кинул

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

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

Lamozavrik @ Вчера, 17:08 * ,
ФормаСпецификации   = ЭтотОбъект.ПолучитьФорму("ФормаСпецификации");
Для Каждого ТекСтрока Из Товары Цикл  // заполним табличную часть документа, из ТаблицыЗначений
     НС = ФормаСпецификации.Спецификация.Добавить();
     НС.Номенклатура = ТекСтрока.Номенклатура;
КонецЦикла;  
ФормаСпецификации.ОткрытьМодально();


Вот такой вариант у меня работает

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


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

 

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