for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Вопросы по 1С
   :: Помощь сайту :: 

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

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


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

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

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

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

Re: Получить форму списка расходных накладных
Аспид

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

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

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

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


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

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

Сообщений: 520
Откуда: Белгород
Дата: 27.10.16 20:06:55ОтветитьЦитировать
Аспид
Выполните запрос для отладки прямо в вызывающей форме.
Сделайте как хотели в самом начале.

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

Re: Получить форму списка расходных накладных
Аспид

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

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


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

Re: Получить форму списка расходных накладных
Аспид

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


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

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

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

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

Сообщений: 520
Откуда: Белгород
Дата: 27.10.16 20:48:02ОтветитьЦитировать
Аспид
Надо в документе получить материал, и его передать в качестве параметра, и далее уже его подставлять в условие.

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

Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3084
Откуда: Москва
Дата: 27.10.16 20:48:22ОтветитьЦитировать
Дошло!


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

Re: Получить форму списка расходных накладных
Аспид

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


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

Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3084
Откуда: Москва
Дата: 27.10.16 20:54:48ОтветитьЦитировать
Вот же код!)))
pasha_usue
Плохо читаете. Я еще раз мягко намекну, да?

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


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




Исправлено: Аспид, 27.10.16 20:57
Ratings: 0 negative/0 positive

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

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

Re: Получить форму списка расходных накладных
Аспид

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


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

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

Сообщений: 520
Откуда: Белгород
Дата: 27.10.16 21:01:54ОтветитьЦитировать
Аспид
Вот же код!)))
Да.
Но...

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

Вообщем, вопросы-вопросы.
Ratings: 0 negative/0 positive

Re: Получить форму списка расходных накладных
Аспид

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

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


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

Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3084
Откуда: Москва
Дата: 27.10.16 21:08:26ОтветитьЦитировать
Зингер
Аспид
Вот же код!)))
Да.
Но...

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

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


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

Re: Получить форму списка расходных накладных
Аспид

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


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

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

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


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

Re: Получить форму списка расходных накладных
Аспид

Сообщений: 3084
Откуда: Москва
Дата: 27.10.16 22:15:02ОтветитьЦитировать
мне странно.
В который раз повторяю. Тип параметра - структура!


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

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

Сообщений: 520
Откуда: Белгород
Дата: 27.10.16 22:23:20ОтветитьЦитировать
Аспид
мне странно.
В который раз повторяю. Тип параметра - структура!

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

не нахожу.
Ratings: 0 negative/0 positive


Вложения:
[Безымянный.gif (37.4KB)]  

Re: Получить форму списка расходных накладных
Аспид

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

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


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



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

On-line: 39 Simple777 Божья_коровка  and Guests: 37


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