Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 21:51

Заполнение поля табличной части из регистра накопления

Автор Чернов Андрей, 07 июн 2013, 20:02

0 Пользователей и 1 гость просматривают эту тему.

Чернов Андрей

Доброе время суток! В ходе разработки собственной конфигурации возникла необходимость сделать так, чтобы поле табличной части документа заполнялось данными из регистра накопления. Я так понимаю, что реализовать подобное можно с помощью запросов (если я не прав, поправьте), но я ещё не сталкивался с запросами, не знаю, что они такое и с чем их едят. Помогите пожалуйста решить вышеизложенную проблему, или киньте ссылку на статью, в которой подробно описывается решение похожих задач. Искал сам, но попадаются такие материалы, в которых сам не могу разобраться

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Чернов Андрей

Dethmontt, я создаю отчёт для работы с запросами, делаю запрос, он выдаёт ошибку "Поле объекта не обнаружено (Значение)". Указывает на строку:

ЭлементыФормы.ПолеРезультатаЗапроса.Значение = РезультатЗапроса.Выгрузить();

Я создавал отчёт по видеоуроку, там всё работало без проблем. Почему у меня такой косяк?
Добавлено: 09 июн 2013, 09:54


Блин, он и про эту строку то же самое выдаёт:

ЭлементыФормы.ПолеРезультатаЗапроса.СоздатьКолонки();

GRADUS

Цитата: Чернов Андрей от 09 июн 2013, 09:27
Dethmontt, я создаю отчёт для работы с запросами, делаю запрос, он выдаёт ошибку "Поле объекта не обнаружено (Значение)". Указывает на строку:

ЭлементыФормы.ПолеРезультатаЗапроса.Значение = РезультатЗапроса.Выгрузить();

Я создавал отчёт по видеоуроку, там всё работало без проблем. Почему у меня такой косяк?
Добавлено: 09 июн 2013, 09:54


Блин, он и про эту строку то же самое выдаёт:

ЭлементыФормы.ПолеРезультатаЗапроса.СоздатьКолонки();

Вот тебе делать то нечего .... xDDD

Чернов Андрей

GRADUS, я абсолютно не знаю, как решить возникшую проблему. Не знаю даже, с чего начать, я чайник полный. Если заполнение табличной части данными из регистра реализовывается как-то иначе, подскажите пожалуйста, как?

GRADUS

Цитата: Чернов Андрей от 09 июн 2013, 10:02
GRADUS, я абсолютно не знаю, как решить возникшую проблему. Не знаю даже, с чего начать, я чайник полный. Если заполнение табличной части данными из регистра реализовывается как-то иначе, подскажите пожалуйста, как?

Хорошо, поможем, какую именно табличную часть надо заполнить? Надеюсь, не ту что на скриншоте. Как вариант ошибки - Тип нижнего поля не ТаблицаЗначений.

Запрос надо писать в тексе программы, а не выносить куда то в форму.


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | Поступление.ЧертежноеОбозначение
               |ИЗ
               | РегистрСведений.Поступление КАК Поступление";
Выгрузка = Запрос.Выполнить().Выгрузить();
Для Каждого ЧертежноеОбозначение Из Выгрузка Цикл
     //перебираешь все значения полученные из регистра и делаешь с ними что угодно
//Например, если есть в этом объекте табличная часть, тогда
ТЧ.Добавить(); // Добавили строчечку
ТЧ.ЧертежноеОбозначение = ЧертежноеОбозначение; //Заполнили строчечку
        // Если в элементах надо создавать, то ТЧ это ЭлементыФормы.ТЧ
КонецЦикла;


А вообще лучше напиши реальную задачу, сейчас ты пытаешься сделать консоль запросов, которую проще и удобнее скачать

Чернов Андрей

Дело обстоит так: есть учётный документ "План производства цеха", в табличной части которого основными колонками являются "входящая деталь, сборка", "количество плановое", "количество фактическое" и "поставщик". Значения первых двух задаются по умолчанию, это то,  что цех по плану должен собрать, а вот значения "фактическое количество" он вносит сам, по мере выполнения плана.
В общем, нужно сделать так, чтобы значения колонок "фактическое количество" и "поставщик" заполнялись бы из регистра накопления "Поступление номенклатуры", где регистрируется поступление деталей на склад.
Добавлено: 09 июн 2013, 10:49


Выборку Чертёжного обозначения я для примера указал, извиняюсь, что запутал

GRADUS

Цитата: Чернов Андрей от 09 июн 2013, 10:37
Дело обстоит так: есть учётный документ "План производства цеха", в табличной части которого основными колонками являются "входящая деталь, сборка", "количество плановое", "количество фактическое" и "поставщик". Значения первых двух задаются по умолчанию, это то,  что цех по плану должен собрать, а вот значения "фактическое количество" он вносит сам, по мере выполнения плана.
В общем, нужно сделать так, чтобы значения колонок "фактическое количество" и "поставщик" заполнялись бы из регистра накопления "Поступление номенклатуры", где регистрируется поступление деталей на склад.

Надо идти в эту форму, смотреть как заполняется табличная часть, туда записать свой код (процедура при открытии).
Либо найти момент, когда когда ТЧ уже заполнилась, но еще не вывелась (процедура при открытии). В этот момент перебираем строки ТЧ в цикле и меняем значение на нужное. Как получить нужное значение, я думаю ты уже знаешь. Без кода большего сказать не могу.

Искай

Чернов Андрей

То есть в форме документа нужно создать ПроцедураПриОткрытииФактическоеКоличество, что-то подобное, да? И в этой процедуре написать запрос?
Добавлено: 09 июн 2013, 11:05


Мне бы хоть какой-нибудь пример, потом бы я сам догнал

GRADUS

Цитата: Чернов Андрей от 09 июн 2013, 11:02
То есть в форме документа нужно создать ПроцедураПриОткрытииФактическоеКоличество, что-то подобное, да? И в этой процедуре написать запрос?

Нет, она у тебя уже написана, она так и называется, "при открытии".
Если ее нет, значит табличка формируется где то в другом месте, тебе надо найти где.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск