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

СМОТРЕТЬ >>

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

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

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

Оффлайн ilnur75

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

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

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

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

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

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

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

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


Оффлайн Golickoff

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

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

Оффлайн LexaK

  • *****
  • Сообщений: 1216
  • РЕПУТАЦИЯ: 333
  • КПД: 27%
  • Регистрация: 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

  • *****
  • Сообщений: 1216
  • РЕПУТАЦИЯ: 333
  • КПД: 27%
  • Регистрация: 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

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 10
  • КПД: 9%
  • Регистрация: 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

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

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

ваш вариант:

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

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

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

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

или

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

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

Оффлайн ilnur75

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
89 Сообщений
wise wise
68 Сообщений
MuI_I_Ika MuI_I_Ika
51 Сообщений
alex0402
49 Сообщений
Dethmontt Dethmontt
48 Сообщений
Сергей Федоров Сергей Федоров
29 Сообщений
ilyay ilyay
28 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal