:: Вопросы по 1С
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Аспид
Увы, параметры в форму передаются не так.
Почитайте, Паша все описал.
Вот здесь у меня и "затык". Паша показал, что в качестве параметра можно передать массив номенклатуры(там стоит функция). Немного подумав, пришел к мнению, что на данном этапе для меня это сложная задача. И в течении беседы поменял мнение и предположил, что в качестве параметра можно передать ссылку на документ и уже в полученной форме отобрать необходимые данные. Но и этого не смог сделать. Если покажете как правильно, буду признателен, если же вера не позволяет подсказывать, ну что ж ... когда-нибудь дойду сам.


Аспид
Что вам надо получить?
Список материалов? (Если я верно понял задачу)
И где он в выборке?

Зингер [Дата: 27.10.16 16:16:34
Допустим, есть приходная накладная с тремя позициями
1)Холодильник
2)Кроссовки
3)Бутыль молока

Хочется получить список расходных накладных, где бы учавствовали эти 3 позиции.

Аспид
Зачем вам ПометкаУдаления и пр. реквизиты шапки?
Сергей же сразу спросил, у вас как связаны приходник и расходник. Вы ответили - нет.
Откройте свойства объекта список. Поставьте галочку произвольный запрос, затем настройка списка. Появится текст запроса, откуда берутся данные. Просто их я не удалил, добавил свое условие и все.
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Не. Вера ничего не запрещает. Я б с удовольствием. Но когда надо передавать параметр, лезу в инет, и смотрю как это.
В 1С это слишком своеобразно.
Когда смогу объяснить сам - расскажу)))
Пока... тока в инет, там примеров навалом. Но сложно это.

Но еще раз. У вас начало не верное!
Вы никак не хотите понять, что ваш запрос, вовсе не делает того что хотите.
Зингер
Зингер [Дата: 27.10.16 16:16:34
Допустим, есть приходная накладная с тремя позициями
1)Холодильник
2)Кроссовки
3)Бутыль молока

Я ж вам и показал на это.
То что вы мастером навыбирали поляей из шапки, а надо то детали.
Он просто... не имеет смыла.
Где у вас в запросе укзания на
1)Холодильник
2)Кроссовки
3)Бутыль молока
Вы ж программист, и должны понимать, что за вас никто не догадается, поставить правильные условия.

Выполните запрос для отладки прямо в вызывающей форме.
Сделайте как хотели в самом начале.
Повесьте кнопочку, и отладчиком пройдитесь.


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Аспид
Выполните запрос для отладки прямо в вызывающей форме.
Сделайте как хотели в самом начале.

В посте
Зингер
Дата: 27.10.16 15:05:49
я исправил пост №1 и выполнил этот запрос в кнопке и получил ожидаемый результат, т.е. вывел список расходных накладных. Специально посмотрел в отладчике, все "на мази". Осталось отобразить данные в новой форме.
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

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

Я просто не могу увидеть там логики. Оно не может работать. ИМХО.
Жду текст запроса.


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Я ужасно тупил)
Я почему то полагал, что выбирать надо материалы.
Ясно, что вы выбираете, доки в которых есть эти материалы.
Потому критика о ПометкаУдаление - не конструктивная. Извините.
Но условие все равно не верно.
Надо в документе получить материал, и его передать в качестве параметра, и далее уже его подставлять в условие.


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Вот текст запроса. Пост от Дата: 27.10.16 15:05:49
Запрос.Текст =
"ВЫБРАТЬ
| ОказаниеУслуги.Ссылка
|ИЗ
| Документ.ОказаниеУслуги КАК ОказаниеУслуги
|ГДЕ
| ОказаниеУслуги.ПереченьНоменклатуры.Номенклатура В
| (
| ВЫБРАТЬ
| Материалы.Материал
|ИЗ
| Документ.ПриходнаяНакладная.Материалы КАК Материалы
|ГДЕ
| Материалы.Ссылка = &Документ)";
Запрос.УстановитьПараметр("Документ",Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Здесь после "ГДЕ" вместе с предикатом "В" (аналог IN в SQL) выбирается номенклатура (в табличной части), принадлежащая текущему документу "ПриходнаяНакладная".
А итоговый запрос
ВЫБРАТЬ
| ОказаниеУслуги.Ссылка
|ИЗ
| Документ.ОказаниеУслуги КАК ОказаниеУслуги
возвращает искомый список документов.
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Аспид
Надо в документе получить материал, и его передать в качестве параметра, и далее уже его подставлять в условие.

Во-о-от. Для меня это не преодолимый барьер. Буду ждать подсказки от гуру.
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Дошло!


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Да в инете по этому поводу просто навалом!
В создаваемой форме, надо указать параметр. Он кажется всегда структура.
При вызове, надо создать структуру, и передать ее в качестве параметра.
На пальцах, как понимаю.
Детали... не фокс, из головы не могу)))
Но в инете навалом просто.


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Вот же код!)))
pasha_usue
Плохо читаете. Я еще раз мягко намекну, да?

&НаКлиенте
Процедура ВызватьФорму(Команда)
ТекПараметры = Новый Структура();
ТекПараметры.Вставить("ПереченьНоменклатуры", ПолучитьМассивНоменклатурыИзТабличнойЧастиНаСервере());
ФормаОбработки = ПолучитьФорму(<<ПутьКМоейФорме>>, ТекПараметры, ЭтаФорма);
ФормаОбработки.Открыть();
КонецПроцедуры
Ну только что разве, сам тип параметра для вашей выборки иной
ТекПараметры = Новый Структура();
ТекПараметры.Вставить("Документ", ЭтаФорма); - не уверен что правильно, может и объект)
Пашин вариант лучше. На фига вам док. Он сразу предложил массив.


------------------




Исправлено 1 раз(а). Последнее : Аспид, 27.10.16 20:57
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Аспид
Надо в документе получить материал, и его передать в качестве параметра, и далее уже его подставлять в условие.
В исходном документе?
Т.е. я с Вашей помощью установил, что в качестве параметра нужно передать все-таки массив из номенклатуры, а не ссылку.
Вопрос, сводиться к тому как это сделать. Пока для меня это темный лес.
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Да можно и как вы. Разобрался.
Но очевидно, что это гораздо тяжелее.
Когда передаете массив, то там только нужное.


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Аспид
Вот же код!)))
Да.
Но...

Тут еще надо разобраться с
1)Как данные из запроса перегнать в массив.
2)Нужны ли параметры (и какого типа)в новой форме, которая получиться с новой выборкой.
3)Собственно как произвести отбор в новой форме.

Вообщем, вопросы-вопросы.
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
я бы массив получил так
МассивМатериалов = Новый Массив();
ТЧ=Объект.Материал *(если таб часть так наз-ется_
Для каждого Мат Из ТЧ Цикл
МассивМатериалов.Добавить(Мат.Ссылка)
КонецЦикла;

Все примерно, из головы)
Легко проверите


------------------
Ratings: 0 negative/1 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Зингер
Аспид
Вот же код!)))
Да.
Но...

Тут еще надо разобраться с
1)Как данные из запроса перегнать в массив.
2)Нужны ли параметры (и какого типа)в новой форме, которая получиться с новой выборкой.
3)Собственно как произвести отбор в новой форме.

Вообщем, вопросы-вопросы.
СТОП. Опять путаница. Или я опять не понял.
Зачем данные из запроса в массив?
1. Массив нужен ДЛЯ запроса.
2. Тип параметра - структура. Что подтверждает код Паши.
3. Так выборка то что написали, и должна быть в новой форме.


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Понял в чем затык))) Наверное.
В созданной фрме, зайдите в свойства и поставьте галдочку "Произвольный запрос"
И там свой запрос и напишите.


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Пока разбирался с массивами и кодом Паши понял, что, скорее всего Паша тоже не до конца меня понял. Иначе зачем передавать массив из номенклатуры в новую форму?


Аспид
Понял в чем затык))) Наверное.
В созданной фрме, зайдите в свойства и поставьте галдочку "Произвольный запрос"
И там свой запрос и напишите.
А вот в этой стадии я уже находился. Это когда Вы меня раскритиковали за ненужную шапку, как раз это от туда
ВЫБРАТЬ
ДокументОказаниеУслуги.Ссылка,
ДокументОказаниеУслуги.ПометкаУдаления,
ДокументОказаниеУслуги.Номер,
ДокументОказаниеУслуги.Дата,
ДокументОказаниеУслуги.Проведен,
ДокументОказаниеУслуги.Склад,
ДокументОказаниеУслуги.Клиент,
ДокументОказаниеУслуги.Мастер,
ДокументОказаниеУслуги.ОбъектОснование,
ДокументОказаниеУслуги.ПереченьНоменклатуры,
ДокументОказаниеУслуги.МоментВремени
ИЗ
Документ.ОказаниеУслуги КАК ДокументОказаниеУслуги
ГДЕ
ДокументОказаниеУслуги.ПереченьНоменклатуры.Номенклатура В
(ВЫБРАТЬ
Материалы.Материал
ИЗ
Документ.ПриходнаяНакладная.Материалы КАК Материалы
ГДЕ
Материалы.Ссылка=&Ссылка)
Вслед за этим я добавил в параметр формы параметр Ссылка (какой тип параметра?). Этот параметр должен содержать ссылку на вызывающий документ(ПриходнаяНакладная). И осталось только вызвать эту форму. В качестве параметра я не пойму как это сделать.
Попробовал
ФормаОбработки=ПолучитьФорму("Документ.ОказаниеУслуги.Форма.ФормаСпискаСПараметром",Объект.Ссылка,ЭтаФорма);
Выдало ошибку о не соответствии типа параметра "2"
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
мне странно.
В который раз повторяю. Тип параметра - структура!


------------------
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Зингер
Автор

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Аспид
мне странно.
В который раз повторяю. Тип параметра - структура!

Я здесь такого типа данных
[attachment 26135 ]

не нахожу.
Ratings: 0 negative/0 positive
Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Не пойму что и где ищете.
Еще раз.
Аспид
Вот же код!)))
pasha_usue
Плохо читаете. Я еще раз мягко намекну, да?

&НаКлиенте
Процедура ВызватьФорму(Команда)
ТекПараметры = Новый Структура();
ТекПараметры.Вставить("ПереченьНоменклатуры", ПолучитьМассивНоменклатурыИзТабличнойЧастиНаСервере());
ФормаОбработки = ПолучитьФорму(<<ПутьКМоейФорме>>, ТекПараметры, ЭтаФорма);
ФормаОбработки.Открыть();
КонецПроцедуры
Ну только что разве, сам тип параметра для вашей выборки иной
ТекПараметры = Новый Структура();
ТекПараметры.Вставить("Документ", ЭтаФорма); - не уверен что правильно, может и объект)
Пашин вариант лучше. На фига вам док. Он сразу предложил массив.


------------------
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 1 (Гостей: 1)

© 2000-2024 Fox Club 
Яндекс.Метрика