Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Янв 2017, 17:57
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Форма выбора возвращает не те данные  (Прочитано 628 раз)

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

Оффлайн Golickoff

  • ***
  • Сообщений: 186
  • РЕПУТАЦИЯ: 10
  • КПД: 5%
  • Регистрация: 2015-02-05
  • Сайт: 
  • Профессия: Ученик 1С
Всем привет.

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


Оффлайн Rasty

  • *****
  • Сообщений: 963
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Лучше устанавливайте отбор в списке, не меняя текст запроса
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн Golickoff

  • ***
  • Сообщений: 186
  • РЕПУТАЦИЯ: 10
  • КПД: 5%
  • Регистрация: 2015-02-05
  • Сайт: 
  • Профессия: Ученик 1С
Лучше устанавливайте отбор в списке, не меняя текст запроса
Боюсь, нужны подробности.

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Боюсь, нужны подробности.

Да вроде все понятно... Нужно не запросом что-то искать, а нужно накладывать отбор на дин. список.

Оффлайн Vladimir_Sh

  • 1С:Специалист
  • ****
  • Сообщений: 348
  • РЕПУТАЦИЯ: 65
  • КПД: 19%
  • Регистрация: 2015-10-16
  • Сайт: 
  • Профессия: Разработчик 1С
Вот ТУТ можно почитать или ТУТ
Если я Вам помог, нажми - Спасибо!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1095
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
текст запроса можно и в настройках динамического списка прописать, не обязательно его программно устанавливать.
заодно в настройках проверить - основная таблица не слетает?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Golickoff

  • ***
  • Сообщений: 186
  • РЕПУТАЦИЯ: 10
  • КПД: 5%
  • Регистрация: 2015-02-05
  • Сайт: 
  • Профессия: Ученик 1С
Вот ТУТ можно почитать или ТУТ
Переделал по первому примеру.
В модуле формы выбора больше ничего нет. В модуле формы документа находится этот код:
&НаКлиенте
Процедура СчётНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СЗСчетов = Новый СписокЗначений;
МассивЗначенийСчетов = Новый Массив;
ПолучитьЗначенияСчетов(МассивЗначенийСчетов);
СЗСчетов.ЗагрузитьЗначения(МассивЗначенийСчетов);
НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;
ОтборСписка = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборСписка.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ОтборСписка.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    ОтборСписка.ПравоеЗначение = СЗСчетов;
    ОтборСписка.Использование = Истина;
ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
ОткрытьФорму("Справочник.Счета.Форма.ФормаВыбора", ПараметрыФормы, Элемент);
КонецПроцедуры

&НаСервере
Процедура ПолучитьЗначенияСчетов(Массив)
ЗапросСчетов = Новый Запрос;
ЗапросСчетов.Текст = "ВЫБРАТЬ
                      | Счета.Ссылка,
                      | Счета.Наименование,
                      | Счета.Код
                      |ИЗ
                      | Справочник.Счета КАК Счета
                      |ГДЕ
                      | (Счета.Держатель = &Держатель
                      | ИЛИ Счета.Общий = ИСТИНА)";
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Держатель = Справочники.Пользователи.НайтиПоНаименованию(ТекущийПользователь.Имя);
ЗапросСчетов.УстановитьПараметр("Держатель", Держатель);
Выборка = ЗапросСчетов.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Массив.Добавить(Выборка.Ссылка);
КонецЦикла;
КонецПроцедуры
Теперь выбранное значение корректно возвращается в поле ввода, но... Открывается две формы выбора. Одна с отбором и одна без него. Почему -- для меня загадка. Прошёлся отладкой до строки
ОткрытьФорму("Справочник.Счета.Форма.ФормаВыбора", ПараметрыФормы, Элемент);
и ничего подозрительного не нашёл. Дальше пошёл неотлаживаемый тёмный лес, открывающий вторую форму. Кто-нибудь знает откуда взялась вторая форма?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1095
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Процедура СчётНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Golickoff

  • ***
  • Сообщений: 186
  • РЕПУТАЦИЯ: 10
  • КПД: 5%
  • Регистрация: 2015-02-05
  • Сайт: 
  • Профессия: Ученик 1С
Процедура СчётНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
А бревно в глазу и не заметил. Всем спасибо. Всё работает.


 

Печатная форма "ЧекККМ" для "Отчета о розничных продажах"

Автор Игорь ПолищукРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 5063
Последний ответ 01 Июн 2011, 20:39
от Шурыгин Иван Сергеевич
Внешняя обработка (внешняя печатная форма УТ ЗаказПокупателя)

Автор RusadmРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3777
Последний ответ 27 Май 2011, 15:23
от cska-fanat-kz
Печатная форма "Акт сверки взаиморасчетов"

Автор NikolosРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3685
Последний ответ 11 Сен 2012, 08:18
от Nikolos
Форма "Взнос наличными в банк" где она :)

Автор lefantiy_94Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 2754
Последний ответ 30 Июн 2015, 03:50
от lefantiy_94
Как программно вызывать обработчик ПриИзменении поля табличной части после того, как форма была заполнена программно?

Автор ИстребительРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 2283
Последний ответ 27 Июл 2015, 06:21
от cska-fanat-kz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
155 Сообщений
alex0402
80 Сообщений
alexandr_ll
37 Сообщений
LexaK
30 Сообщений
MuI_I_Ika MuI_I_Ika
27 Сообщений
crow1983
27 Сообщений
sertak sertak
22 Сообщений
дфтын дфтын
17 Сообщений
BuhRust
15 Сообщений
Vzonder
14 Сообщений

* Кто онлайн

  • Точка Гостей: 676
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal