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

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

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

Оффлайн ilnur75

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

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

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

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

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

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

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

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


Оффлайн Golickoff

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

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

Оффлайн LexaK

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

Оффлайн vitasw

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

Оффлайн LexaK

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

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

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

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

Оффлайн vitasw

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

Оффлайн ilnur75

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

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

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


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

Оффлайн vitasw

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

Оффлайн LexaK

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

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

ваш вариант:

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

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

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

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

или

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

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

Оффлайн ilnur75

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

* Последние вакансии

1С HRIS от goldi77
[18 Окт 2017, 11:58]

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

oleg-x
88 Сообщений
alex0402
50 Сообщений
AIFrame
43 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
37 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
18 Сообщений
DmitriyF DmitriyF
14 Сообщений
pavl_vs
12 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal