#0
by unitvisual
Есть такая задачка.... Документ, в нём 4 табличные части, в каждой из них есть колонка Материал и Количество. Требуется извлечь из каждой табличной части колонки Материал и Количество, потом одинаковые материалы объединить и количество соответственно для них суммировать. Сделать это нужно конкретно для открытого документа в данный момент. Далее, когда запросом всё выбрано и объединено, с помощью цикла из выборки я копирую данные в документ списания материалов со склада. Сделал нечто вот такое, но работает оно криво что капец. Там вместо 3х материалов куча дублирующихся строк. Хотя нет никаких для этого поводов... И я так понимаю я обрабатываю вообще все документы?? ---------
#1
by Rie
Документ открыт - но может быть изменён и ещё не записан? Тогда запрос будет выбирать то, что хранится в базе данных, игнорируя изменения. Так и надо? Может, проще будет собрать табличные части в одну таблицу значений и её свернуть?
#2
by Rie
+ Или же это и есть подготовка документа для последующего редактирования? Тогда в запросе лучше ОБЪЕДИНИТЬ, а не плодить колонки.
#4
by unitvisual
Документ записан и проведён должен быть(это надо потом сделать проверку), только при этом условии должно будет разрешаться списывать материалы со склада. По идее документ не должны проводить до тех пор, пока не будет выполнен заказ наряд. После того как заказ наряд полностью выполнен, можно списать материалы со склада. Получается обрабатывать нужно то что хранится в базе данных, но конкретно только для открытого документа. Как лучше сделать и правильнее? По идее при выдаче заказ наряда материалы выдаются ? Но списывают их в какой момент после выполнения или при выдаче наряда? Я совсем новичок...сюда за советом и пришёл....как сделать лучше не знаю..я даже одного способа сделать не могу) ===== А как сделать объединение??? Про запросы уже прочитал всё что можно, думал про объединение, но никогда не делал! Сегодня первый день их изучаю...
#5
by Rie
<и так далее> При этом количество полей должно совпадать во всех объединяемых запросах. В итоге получится один результат запроса с полями, названными КАК в первом запросе.
#6
by unitvisual
При этом количество полей должно совпадать во всех объединяемых запросах. Вы имели ввиду что везде должно быть 2 колонки??? в данном случае допустим Материалы и Количество???
#7
by unitvisual
по сути я должен написать 4 полноценных запроса?? Вопрос ещё такого плана...а КАК мне выдёргивать данные именно из открытого документа?? А не из всех документов которые имеются....или до этого я и выдёргивал из одного?)) Я вот тут что-то не пойму...
#8
by Rie
Из "открытого документа" запрос данные не выдернет. Данные будут получены из документа, который записан. Чтобы не лезли данные из всех документов - в запросе (или в его частях, которые потом надо ОБЪЕДИНИТЬ ВСЕ) указывается условие и задаётся параметр запроса: Запрос.Установить("ТекущийДокумент",СсылкаНаТотДокументКоторыйНужноОбработать);
#9
by unitvisual
что-то примерно понял, но не совсем) Вопрос: как получить ссылку на тот документ который нужен? Есть что-нибудь на вроде Текущий? А это прям так и должно быть: ГДЕ ИмяТаблицы.Ссылка Или я должен писать например ПрямаяСдельная.Ссылка? Прямая сдельная- это название табличной части.
#10
by Rie
А какой документ нужен? В примере в есть лишь только что созданный документ, из которого запросу выбирать нечего. А так - почитай про запросы. И обдумай свою задачу. Пока что даже опытному телепату придётся потрудиться, чтобы понять, что же тебе нужно.
#11
by unitvisual
Вы наверное не так поняли, документ который только что создан, в него будут помещаться данные из запроса, а запрос берёт данные из документа, где перечислены материалы и их количество. Документ с материалами во время списания открыт,т.к. кнопки списания находится в документе с материалами.
#12
by unitvisual
В первом посте написал, что есть документ уже созданный, сохранённый с данными. Мы из него извлекаем записи и потом их помещаем во вновь созданный документ!
#13
by unitvisual
Сделал так, при выполнении вылазит ошибка: {Документ.НарядНаВыполнениеРабот.Форма.ФормаДокумента1}: Ошибка при вызове метода контекста (Выполнить): {(12, 1)}: Ожидается имя таблицы по причине: {(12, 1)}: Ожидается имя таблицы <<?>>ОБЪЕДИНИТЬ ВСЕ
#15
by unitvisual
Вот так сделал, запрос выполняется, но блин считаются туда ВСЕ документы....теперь задача как сделать чтоб только из текущего выбиралось. Документ текущий записан, сохранён.
#19
by unitvisual
вот я балбес!!!!! а теперь пожалуйста, объясните, как ЭТО работает??? я сколько читал справку встроенного языка...митичкина...ап габец и гончаров книга..просты примеры разработки...ни в теме касаемо запросов...ни документов такого не видел...!!!
#21
by unitvisual
Осталась одна беда...все позиции копируются верно, но почему то вместо сгруппированных результатов, отображаются все строки по отдельности! в общем запрос принял в итоге вот такой вид:
#22
by Злобный Йожег
Псевдонимы из следующих запросов (Материал1, Материал2..., ВсегоКоличество1, ВсегоКоличество2...) убери нах
#23
by unitvisual
согласен висят мусором и не используются. Вопрос...почему все данные объединяются в 1 массив..но не группируются???? Мне нужно чтоб было не 8 строчек ..а допустим 2....если материалов 2...
#25
by Злобный Йожег
"Мне нужно чтоб было не 8 строчек ..а допустим 2....если материалов 2." Вместо ОБЪЕДИНИТЬ ВСЕ напиши просто ОБЪЕДИНИТЬ
#26
by unitvisual
так разница только в том, что если есть одинаковые строки, то слово объединить их отсекает и оставляет 1 строку - получается потеряется материал... а объединить всё считает все строки... вроде так ведь?
#27
by unitvisual
сейчас попробовал...как и говорил...просто тупо идентичные строки пропали....осталось 5 строк..объединением и не пахнет))
#28
by unitvisual
Н данный момент всё что написано работает ВЕРНО, т.е. данные группируются, но лишь ВНУТРИ КАЖДОГО запроса, потом все запросы объединяются и выходит допустим 8 строк....как сейчас сделать для всех этих 4х объединённых запросов группировку????
#30
by unitvisual
интересует как это будет выглядеть синтаксически! я понимаю что нужно сгруппировать...а как это оформить??
#32
by unitvisual
вылезает вот такая ошибка: {Документ.НарядНаВыполнениеРабот.Форма.ФормаДокумента1}: Поле объекта не обнаружено (Количество) НоваяСтрокаТабличнойЧасти.Количество = Выборка.Количество; - как я понял...в массиве куда то теряется количество материалов... ЗЫ: А внутри запросов вы убрали группировку чтобы лишние операции не выполнять да?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как заполнить список списком всех ДОКУМЕНТОВ в конфигурации?
- Заполнить табличную часть
- Как заполнить програмно заполнить субконто?
- Заполнить табличную часть из справочника
- v8: Как заполнить значения свойств нового документа на основании существующ
- Как программно заполнить табличную часть в документе!
- Как перенести табличную часть справочника в табличную часть документа?
- Как заполнить табличную часть документа, данными, реквизита этого документа?
- Программно заполнить табличную часть документ 1С 8.2
- Управляемое приложение - Как заполнить табличную часть на открытой форме?
- Как заполнить табличную часть
- Заполнить табличную часть на основании запроса СКД
В этой группе 1С
- Как средствами экселя из 1С скопировать диапазон ячеек в другое место
- mail и одноклассники.ру
- Оплата ночных часов при работе в выходной день
- Куда делась "Библиотека стандартных подсистем"?
- Как в зависимости от значения реквизита в шапке менять тип значения в табличной части
- Как выгрузить регламентированный отчёт в формате xml ?
- ЗУП Профессионал
- как запаковать xml файл в http пакет
- АвтоВремяНачалоДня
- Не выбран счет дебета по начислению облагаемому ЕСН. Шаблон проводки "Не отражать в б
- Где можно взять файл data77_81.xml?
- COM-соединение с 1с8 из PowerShell
- Проблема с сохранение диаграммы в Excel 2007.
- УТ 10.3 Вопрос пользователя. Неликвиды.
- Как можно изменить значение в регистре сведений?
- Терминал + 1С - Ошибка при запуске : Память не может быть Read
- Как разрешить в поле выбора "ОписаниеТипов" выбирать только справочники?
- Как прописать путь к sql базе в файле default.vrd
- Подскажите, стоит ли обновлять 6-й Касперский на новый, например 2010?
- v7: ЗиК Больничный лист внутреннему совместителю