|
Управляемые формы. Передача Результата запроса | ☑ | ||
---|---|---|---|---|
0
Vyacheslav_UZ
11.07.16
✎
13:43
|
Самописная конфигурация на 8.3
Не заполняет табличная часть. Заполняет только пустыми строками. &НаКлиенте Процедура ПриОткрытии(Отказ) ПриОткрытииНаСервере(); КонецПроцедуры &НаСервере Процедура ПриОткрытииНаСервере() Если ЭтаФорма.Объект.Валюта = Справочники.Валюты.ПустаяСсылка() Тогда ЭтаФорма.Объект.Валюта = Справочники.Валюты.UZS; КонецЕсли; Если ЭтаФорма.Объект.Валюта = Справочники.Валюты.UZS Тогда Элементы.Курс.Видимость = Ложь; Иначе Элементы.Курс.Видимость = Истина; КонецЕсли; Если ЭтаФорма.Объект.Курс = 0 Тогда ЭтаФорма.Объект.Курс = 1; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ВалютаПриИзменении(Элемент) ВалютаПриИзмененииНаСервере(); КонецПроцедуры &НаСервере Процедура ВалютаПриИзмененииНаСервере() Если ЭтаФорма.Объект.Валюта = Справочники.Валюты.UZS Тогда Элементы.Курс.Видимость = Ложь; Иначе Элементы.Курс.Видимость = Истина; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Заполнить(Отказ) ВыбЗнач = Неопределено; Если ВвестиЗначение(ВыбЗнач, "Введите значение", "СправочникСсылка.МеждународныеНаименования") Тогда Сообщить("Введенное значение: "+ВыбЗнач); КонецЕсли; МеждународнееНаименование = ВыбЗнач; РезультатЗапроса(МеждународнееНаименование); ЭтаФорма.Записать(); КонецПроцедуры &НаСервере Процедура РезультатЗапроса(МеждународнееНаименование) Объект.Медикаменты.Выгрузить(); Объект.Медикаменты.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Медикаменты.Наименование КАК Медикамент, | Медикаменты.ФирмаСтранаПроизводитель, | Медикаменты.ФармакотерапевтическаяГруппа, | Медикаменты.ЛекарственнаяФорма, | Медикаменты.МеждународнееНаименование |ИЗ | Справочник.Медикаменты КАК Медикаменты |ГДЕ | Медикаменты.МеждународнееНаименование = &МеждународнееНаименование"; Запрос.УстановитьПараметр("МеждународнееНаименование", МеждународнееНаименование); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ТЗ = Новый ТаблицаЗначений; ТЗ = РезультатЗапроса.Выгрузить(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(?(НЕ(ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.МеждународнееНаименование)),"НЕТ", ВыборкаДетальныеЗаписи.МеждународнееНаименование)); Объект.Медикаменты.Загрузить(ТЗ); КонецЦикла; КонецПроцедуры |
|||
1
Vyacheslav_UZ
11.07.16
✎
13:44
|
Первый код пропустить***
|
|||
2
Beretta
11.07.16
✎
13:46
|
Звездец, а ты был прав по поводу троицы-то в Почему не заполняется тз или управляемые формы.
|
|||
3
Vyacheslav_UZ
11.07.16
✎
13:48
|
Beretta Вот лучше бы помогла, чем....
|
|||
4
Vyacheslav_UZ
11.07.16
✎
13:54
|
Beretta и я переписал так как мне сказали. Но все ровно не отрабатывает.
|
|||
5
Beretta
11.07.16
✎
13:57
|
(3) Я мальчик, мне можно.
|
|||
6
Vyacheslav_UZ
11.07.16
✎
13:59
|
Beretta сорян)
|
|||
7
jsmith
11.07.16
✎
14:01
|
(4) Понимаешь, ты тупишь по-черному. Ты пишешь ужасный код. Ты не догоняешь советы, которые тебе дают. Множишь темы на форуме.
|
|||
8
jsmith
11.07.16
✎
14:02
|
В первой ветке я написал тебе правильный код. Ты пропустил его мимо ушей и стал дальше гнать свою пургу. Даже объяснять что-то тебе уже накладно.
|
|||
9
lodger
11.07.16
✎
14:02
|
(2) ммм троица.
(4) ты явно читаешь через строчку или между строк. а) не повезло той аптеке которой ты коньфу ломаешь. б) не пишите в ПриОткрытии когда можно использовать ПриСозданииНаСервере. в) Выгрузить перед Очистить не нужен. г) ТЗ не надо объявлять перед подачей туда ТЗ из запроса. д) ВыборкаДетальныеЗаписи.Следующий() и РезультатЗапроса.Выгрузить() вместе не используются. либо одно, либо другое. е) чтобы Объект.Медикаменты.Загрузить(ТЗ) работало нужно чтобы колонки совпадали по именам и типам значений. для начала хватит. |
|||
10
Vyacheslav_UZ
11.07.16
✎
14:10
|
&НаКлиенте
Процедура Заполнить(Отказ) ВыбЗнач = Неопределено; Если ВвестиЗначение(ВыбЗнач, "Введите значение", "СправочникСсылка.МеждународныеНаименования") Тогда Сообщить("Введенное значение: "+ВыбЗнач); КонецЕсли; МеждународнееНаименование = ВыбЗнач; РезультатЗапроса(МеждународнееНаименование); КонецПроцедуры &НаСервере Процедура РезультатЗапроса(МеждународнееНаименование) ТЗ = Объект.Медикаменты.Выгрузить(); Тз.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Медикаменты.Наименование КАК Медикамент, | Медикаменты.ФирмаСтранаПроизводитель, | Медикаменты.ФармакотерапевтическаяГруппа, | Медикаменты.ЛекарственнаяФорма, | Медикаменты.МеждународнееНаименование |ИЗ | Справочник.Медикаменты КАК Медикаменты |ГДЕ | Медикаменты.МеждународнееНаименование = &МеждународнееНаименование"; Запрос.УстановитьПараметр("МеждународнееНаименование", МеждународнееНаименование); ТЗ = Запрос.Выполнить().Выгрузить(); Объект.Медикаменты.Загрузить(ТЗ); КонецПроцедуры Не чего не поменялось. |
|||
11
Fedor-1971
11.07.16
✎
14:12
|
(0) такое чувство, что не прочитана ни одна книга про УФ, а кодить очень хочется.
Для начала разберись с УФ, книгу Радченко почитай, что-ли. В особенности обрати внимание на: 1. переход Сервер-Клиент и обратно (что можно передать, что нет) 2. как инициализируется форма (что НаСервере, что НаКлиенте) В выложенном коде полная чехарда, по стилю написания - ОФ, без всякого понимания УФ. Как акын "что пришло в голову, то пишу в код" (10) отладчиком проверь, что происходит в твоём коде. Как минимум - наименование колонок запроса и наименование колонок ТЧ. |
|||
12
hhhh
11.07.16
✎
14:12
|
(10) вот это что?
ВЫБРАТЬ | Медикаменты.Наименование КАК Медикамент, почему наименование хреначите в медикамент. Ведь и ежу понятно, что медикамент - это никакое не наименование. |
|||
13
Vyacheslav_UZ
11.07.16
✎
16:22
|
Как оказалось всё очень просто.Я запросом брал данные из справочника. А нужно было по всем справочникам взять их ссылка.Всем умникам и умницам спасибо.
/////////////////////////////////////////////////////// &НаКлиенте Процедура Заполнить(Отказ) ВыбЗнач = Неопределено; Если ВвестиЗначение(ВыбЗнач, "Введите значение", "СправочникСсылка.МеждународныеНаименования") Тогда Сообщить("Введенное значение: "+ВыбЗнач); КонецЕсли; МеждународнееНаименование = ВыбЗнач; РезультатЗапроса(МеждународнееНаименование); КонецПроцедуры &НаСервере Процедура РезультатЗапроса(МеждународнееНаименование) ТЗ = Объект.Медикаменты.Выгрузить(); Тз.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Медикаменты.Ссылка КАК Медикамент, | ФармакотерапевтическиеГруппы.Ссылка КАК ФармакотерапевтическиеГруппы, | ЛекарственныеФормы.Ссылка КАК ЛекарственныеФормы, | МеждународныеНаименования.Ссылка КАК МеждународныеНаименования, | ФирмаСтранаПроизводители.Ссылка КАК ФирмаСтранаПроизводители |ИЗ | Справочник.Медикаменты КАК Медикаменты | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФармакотерапевтическиеГруппы КАК ФармакотерапевтическиеГруппы | ПО Медикаменты.ФармакотерапевтическаяГруппа = ФармакотерапевтическиеГруппы.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЛекарственныеФормы КАК ЛекарственныеФормы | ПО Медикаменты.ЛекарственнаяФорма = ЛекарственныеФормы.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МеждународныеНаименования КАК МеждународныеНаименования | ПО Медикаменты.МеждународнееНаименование = МеждународныеНаименования.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФирмаСтранаПроизводители КАК ФирмаСтранаПроизводители | ПО Медикаменты.ФирмаСтранаПроизводитель = ФирмаСтранаПроизводители.Ссылка |ГДЕ | Медикаменты.МеждународнееНаименование = &МеждународнееНаименование"; Запрос.УстановитьПараметр("МеждународнееНаименование", МеждународнееНаименование); Результат = Запрос.Выполнить(); ТЗ = Запрос.Выполнить().Выгрузить(); Объект.Медикаменты.Загрузить(ТЗ); КонецПроцедуры |
|||
14
lodger
11.07.16
✎
16:49
|
мощно упрлс.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |