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

Автор Тема: Запросы  (Прочитано 1143 раз)

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

Оффлайн ilnur75

  • **
  • Сообщений: 76
  • РЕПУТАЦИЯ: 5
  • КПД: 7%
  • Регистрация: 2016-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Запросы
« Первое сообщение: 14 Июн 2016, 19:19 »
Ситуация следующая.
Учебная конфигурация 8.3.
п.1. Справочник КонтактныеЛица , владелец его спр.Контрагенты.
п.2. справочник Агенты, владелец его Клиенты.

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

по пункту 1 сделал программно обработчик событий поля ПриИзмененииКонтактногоЛица(на сервере и на клиенте), работает выборка контактных лиц из справочника Контрагенты по принадлежности к текущему контрагенту.

по пункту 2 . аналогично всё делаю для Агента и Клиента , но при выборе Клиента выходит форма списка всех  агентов , т.е. без принадлежности к текущему клиенту. Код ниже:

&НаСервере
Процедура АгентПриИзмененииНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Агенты.Наименование,
| Агенты.Владелец
|ИЗ
| Справочник.Агенты КАК Агенты
|ГДЕ
| Агенты.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Объект.Клиент);
Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Объект.Клиент = Объект.Агент.Ссылка.Владелец;
КонецЦикла;
КонецПроцедуры

 
Что в этом коде надо исправить или дописать?


Оффлайн Golickoff

  • ***
  • Сообщений: 186
  • РЕПУТАЦИЯ: 10
  • КПД: 5%
  • Регистрация: 2015-02-05
  • Сайт: 
  • Профессия: Ученик 1С
Re: Запросы
« Ответ #1: 15 Июн 2016, 04:40 »
п.2. справочник Агенты, владелец его Клиенты.
Если я понял правильно, Агенты и Клиенты -- это два разных справочника. Тогда становится неясно, почему вы делаете выборку с отбором по ссылке, вставляя ссылку на элемент другого справочника.
...
|ГДЕ
| Агенты.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Объект.Клиент);
...
То есть, параметр "Ссылка" является ссылкой на объект другого справочника. Реквизит "Ссылка" для каждого справочника является ссылкой на элемент текущего справочника, а не какого-либо другого. Вы можете сделать отбор по владельцу, написав в запросе "ГДЕ Агенты.Владелец = &Ссылка" и указав тот же параметр, что используете сейчас. Тогда вы получите только тех агентов, владельцем которых является текущий клиент, а цикл после запроса потеряет свой смысл. В общем, я так и не понял чего вы пытаетесь добиться.

Оффлайн LexaK

  • *****
  • Сообщений: 1076
  • РЕПУТАЦИЯ: 281
  • КПД: 26%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Re: Запросы
« Ответ #2: 15 Июн 2016, 10:40 »
Ребята, что-то не пойму.
А на фига вы весь этот геморрой городите?
на формах, тем более управляемых, есть отличный механизм связи полей по владельцам и прочим настройкам отбора.
В общем и программировать ни чего не надо, тем более с таким программированием.
см. рис. да ли любую реальную базу откройте посмотрите примеры настройки связи полей на форме. :befhbt:
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: Запросы
« Ответ #3: 15 Июн 2016, 10:47 »
LexaK, ваш ответ не в тему. ТС хочет, чтоб мог выбрать любого агента и в "клиент" подтянулся владелец. Ваши настройки позволяют выбирать агента только в подчинении владельца, а этого как раз и не нужно, нужна обратная операция.

Оффлайн LexaK

  • *****
  • Сообщений: 1076
  • РЕПУТАЦИЯ: 281
  • КПД: 26%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Re: Запросы
« Ответ #4: 15 Июн 2016, 11:16 »
vitasw,
Цитировать
..., нужна обратная операция.

Какая Обратная операция? например, при выборе договора, просто тупо написать

Контраент = ВыбранныеДоговор.Владелец;

какие здесь запросы нужны? не понимаю. :dfbsdfbsdf:
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: Запросы
« Ответ #5: 15 Июн 2016, 11:23 »
снимаю свои замечания. согласен.

Оффлайн ilnur75

  • **
  • Сообщений: 76
  • РЕПУТАЦИЯ: 5
  • КПД: 7%
  • Регистрация: 2016-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Re: Запросы
« Ответ #6: 15 Июн 2016, 20:01 »
на формах, тем более управляемых, есть отличный механизм связи полей по владельцам и прочим настройкам отбора.
Оказывается не всегда этот механизм действует так как надо. Например, на используемой мной учебной конфигурации в явном виде связи параметров сразу не определяются, надо открыть вспомогательный список и там выбрать и т.д. и т.д.

Поэтому у меня был вопрос с тем как связи параметров описать программно(скрины прилагаются).
Нет возможности допуска к реальным типовым конфигурациям 1с , там все равно этот код не написан.
Если желаете помочь, то научите составить этот код по условиям в 1 посте.
&НаСервере
Процедура КлиентПриИзмененииНаСервере()

// напишите пож-та рабочий код чтобы при выборе:
//  1 . Для поля Контрагент - в поле Контактные лицо выпадал список контактных лиц, подчиненный текущему контрагенту
//  2 . Для поля Клиент - в поле Контактное лицо выпадал список контактных лиц, подчиненный текущему клиенту.
// справочник "Контактные Лица" подчинен справочникам "Контрагенты" и "Клиенты" (см.скрин)
// свойство Связи параметров не работают!!! (см.скрин).
КонецПроцедуры
   


Последний раз редактировалось: ilnur75; 15 Июн 2016, 20:14

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: Запросы
« Ответ #7: 16 Июн 2016, 08:42 »
Правильно - это не писать код, а пользоваться встроенными возможностями платформы.

Оффлайн LexaK

  • *****
  • Сообщений: 1076
  • РЕПУТАЦИЯ: 281
  • КПД: 26%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Re: Запросы
« Ответ #8: 16 Июн 2016, 09:38 »
Цитировать
    //  1 . Для поля Контрагент - в поле Контактные лицо выпадал список контактных лиц, подчиненный текущему контрагенту
    //  2 . Для поля Клиент - в поле Контактное лицо выпадал список контактных лиц, подчиненный текущему клиенту.

ну надо хотя бы немного логику включать, вы путаетесь даже в элементарно постановленной задаче
почему-то вы себе видите задачу так, изображаю поля в квадратных скобах, нет времени формы рисовать

ваш вариант:

[Клиент]
[Контрагент]
        где-то         [КонтактноеЛицо]

как вы хотите в одно поле КонтактноеЛицо воткнуть два лица (по одному на клиента и контрагента) ? отсюда и бардак в вашей голове!

нужна такая схема полей

[Клиент] - [КонтактноеЛицоКлиента]
[Контрагент] - [КонтактноеЛицоКонтрагента]

или

[Клиент/Контрагент(составной тип)] - [КонтактноеЛицо]

ВСЕ, при такой схеме первое поле Клиент/Контрагент является владельцем для второго поля !
(в вашей картинке в связях параметров нужно оставить одну связь)
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн ilnur75

  • **
  • Сообщений: 76
  • РЕПУТАЦИЯ: 5
  • КПД: 7%
  • Регистрация: 2016-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Re: Запросы
« Ответ #9: 25 Июн 2016, 16:49 »
[Клиент/Контрагент(составной тип)] -
как такой тип устанавливается для владельцев?


Теги:
 

Зачем нужна табличная часть справочника, если есть регистр сведений 2.Чем отличаются пакетные запросы от временных таблиц

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

Ответов: 2
Просмотров: 344
Последний ответ 02 Авг 2016, 18:36
от ktu78
Запросы. Получить обороты товаров за период только по определённым документам?

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

Ответов: 5
Просмотров: 5517
Последний ответ 15 Апр 2012, 17:32
от Dethmontt
Как отлаживать запросы в консоли запросов, в которые нужно передавать массив?

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

Ответов: 2
Просмотров: 2537
Последний ответ 26 Апр 2012, 10:28
от cska-fanat-kz
Как из 1С слать запросы к MySQL? (нужно чтобы обновилась инфа на сайте)

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

Ответов: 1
Просмотров: 449
Последний ответ 07 Авг 2015, 13:50
от leklerk
Здрвствуйте, изучаю запросы пытаюсь из регистра выгрузить в ТЗ не получается

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

Ответов: 13
Просмотров: 5279
Последний ответ 13 Мар 2012, 14:27
от cska-fanat-kz

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

* Кто онлайн

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

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

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

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

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

Поиск

 

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