|
Как из запроса сравнить Полученное значение с существующим? | ☑ | ||
---|---|---|---|---|
0
Mythe
15.06.20
✎
09:47
|
У меня есть 2 справочника Абоненты и Типы телефонов.
В справочнике абоненты хранятся ФИО и в их ЧТ есть реквизит типы телефонов, которые выбираются из справочника типы телефонов. Я смог получить наименование реквизита в ТЧ и ФИО в справочнике в котором я выбрал тип, данным кодом: //Данные - название ТЧ Для каждого СтрокаТабЧасти Из ЭтотОбъект.Данные цикл Если СтрокаТабЧасти.ТипТелефона = Справочники.ТипыТелефонов.НайтиПоНаименованию("Обычный") тогда АбонентФИО = Ссылка.ПолучитьОбъект(); Сообщить(СтрокаТабЧасти.ТипТелефона); Сообщить(АбонентФИО.Наименование); КонецЕсли КонецЦикла Мне необходимо как то сравнить тип телефона который я указал в ТЧ и типом телефона в другом справочнике и если они совпадают, то в справочнике типы телефонов, в ТЧ совпавшего типа занести АбонентФИО.Наименование. Зарание спасибо кто сможет помочь |
|||
1
maxipunchik
15.06.20
✎
10:12
|
Не совсем понятна задача. Какая структура у второго справочника? Что с чем сравнивать?
|
|||
2
AAA
15.06.20
✎
10:16
|
Значение из редактирумого объекта со значением в базе ?
|
|||
3
Mythe
15.06.20
✎
10:22
|
В справочнике Абоненты находятся ФИО в которых есть ТЧ в которой указывается тип телефона к которому абонент подключен.
В справочнике Типы телефонов находятся сами типы и в их ТЧ находятся ФИО абонентов, которые подключены к конкретному типу. Типа если У абонента 1 в ТЧ указан тип, к примеру, ОБЫЧНЫЙ то в справочнике типы телефонов нужно найти данный тип и в его ТЧ добавить ФИО абонента Получается я смог определить какой тип я указываю у абонента (СтрокаТабЧасти.ТипТелефона) и смог определить у какого абонента я установил тип (АбонентФИО.Наименование). Мне нужно как то сравнить тип который я указал у абонента и типом который указан в справочнике типы телефонов, если же они сопадают, то в данном типе, в табличную часть необходимо добавить данную строку (АбонентФИО.Наименование). |
|||
4
Mythe
15.06.20
✎
10:25
|
В ТЧ Абонента тип телефона указан как ссылка на справочник типов телефонов и в ТЧ типов телефонов ФИО указанно как ссылка на справочник абонентов
|
|||
5
Mythe
15.06.20
✎
10:31
|
Иерархия справочников следующая, не знаю поможет ли это, я не сильно разбираюсь в 1С:
Справочник - Абоненты | ТипыТелефонов ТЧ - Данные | Абоненты Реквизит - ТипыТелефонов | ФИО |
|||
6
maxipunchik
15.06.20
✎
10:47
|
Тут проще через запрос с итогами, наверное, будет, но, если продолжить твою мысль
Сначала Нужно запросом выбрать всех абонентов или перебрать справочник, но лучше запросом. Дальше обходим каждый элемент справочника абонентов с примерно таким кодом: Для каждого СтрокаТабЧасти Из ЭтотОбъект.Данные цикл Если СтрокаТабЧасти.ТипТелефона = Справочники.ТипыТелефонов.НайтиПоНаименованию("Обычный") тогда ТипСпр = Справочники.ТипыТелефонов.НайтиПоНаименованию(СтрокаТабЧасти.ТипТелефона); Если ТипСпр <> Справочники.ТипыТелефонов.ПустаяСсылка Тогда ТипОб = ТипСпр.ПолучитьОбъект(); НовСтр = ТипОб.Абоненты.Добавить(); НовСтр.ФИО = ЭтотОбъект; ТипОб.Записать(); КонецЕсли; КонецЕсли КонецЦикла |
|||
7
D_E_S_131
15.06.20
✎
11:31
|
Кто-нибудь посоветует уже вытащить запрос (Справочники.ТипыТелефонов.НайтиПоНаименованию("Обычный")) из цикла?
|
|||
8
Mythe
15.06.20
✎
11:40
|
Как я его уберу если как раз таки циклом и ищется наименование, оно там не одно как бы
|
|||
9
dezss
15.06.20
✎
11:40
|
Это что, создаем циклическую ссылку?
В ТЧ абонента хранится тип телефона, а в ТЧ типа телефона будем хранить ссылку на абонента? А нефехоа это? |
|||
10
dezss
15.06.20
✎
11:41
|
(8) Например, вот так?
ОбычныйТипТелефона = Справочники.ТипыТелефонов.НайтиПоНаименованию("Обычный"); А в цикле сравниваешь с ОбычныйТипТелефона. |
|||
11
Mythe
15.06.20
✎
11:44
|
(10) А это не одно и тоже что если у меня в цикле будет искать по названию для каждого типа и то что я за цикл выведу поиск то все равно столько же раз мне придется указывать типы телефонов это и строк больше будет
|
|||
12
Mythe
15.06.20
✎
11:45
|
(6) А то что ругается на пустую ссылку это норма? Типа не определено
|
|||
13
dezss
15.06.20
✎
11:49
|
(12) Лучше скажи, какую задачу ты решаешь)
|
|||
14
Mythe
15.06.20
✎
11:50
|
(13) В каком плане?
|
|||
15
D_E_S_131
15.06.20
✎
11:53
|
(12) Справочники.ТипыТелефонов.ПустаяСсылка -> Справочники.ТипыТелефонов.Пустая()
|
|||
16
Mythe
15.06.20
✎
11:58
|
(15) Метода пустая же нету
|
|||
17
dezss
15.06.20
✎
12:05
|
(14) Чего ты хочешь добиться добавлением этой информации?
|
|||
18
Mythe
15.06.20
✎
12:15
|
(17) Мне нужно чтобы в справочнике типы телефонов в ТЧ появлялся тот абонент которому я указал тип телефона в его ТЧ, если я правильно тебя понял то так.
|
|||
19
dezss
15.06.20
✎
12:18
|
(18) Тогда тебе эту информацию стоит вытягивать из базы в момент открытия этого типа телефона.
Не дублируй инфу в базе, если это возможно. |
|||
20
maxipunchik
15.06.20
✎
12:20
|
(12) я на ходу накидал, посмотри в синтакс помощнике как правильно, скорее всего нужно писать ПустаяСсылка()
|
|||
21
maxipunchik
15.06.20
✎
12:22
|
(7) Судя по задаче, ТС главное, чтобы отработало, пусть так сначала научится, зачем нагружать всякими запросами в цикле
|
|||
22
Mythe
15.06.20
✎
12:23
|
(20) Если не сложно можешь объяснить что этот код должен был делать? А то я вообще не практически не понимаю синтаксис 1с
|
|||
23
Mythe
15.06.20
✎
12:25
|
Мне препод сказал что, то что я хочу реализовать можно сделать только запросом и кодом никак, поэтому в топике написано как получить значение из запроса чтобы его можно было сравнить и чтобы обратится к ТЧ другого справочника
|
|||
24
Mythe
15.06.20
✎
12:27
|
Если я скину ссылки на скрины может так будет более понятней что я хочу реализовать?
|
|||
25
dezss
15.06.20
✎
12:32
|
(24) Что ты хочешь, понятно из (18).
Лучше собирай данные для вывода в момент открытия элемента справочника ТипыТелефонов. Можешь туда вообще запихать динамический список, а таб часть выкинуть. |
|||
26
Mythe
15.06.20
✎
12:36
|
Справочник ТипыТелефонов тут же вообще не используется, я делаю при проведении в справочнике абоненты, либо я просто не понимаю что надо сделать
|
|||
27
maxipunchik
15.06.20
✎
12:37
|
(22) Перебирает таб часть абонента, ищет элемент справочника типов телефонов по имени, получает объект для изменения и закидывает к нему в таб чать ссылку на абонента. Покажи преподу, скажи, что думаешь, что так тоже можно)
|
|||
28
Mythe
15.06.20
✎
12:40
|
(26) У меня практически вся работа на абонентах завязана, при проведении абонента у меня должна появляться запись в ТЧ ТиповТелефонов, в ТЧ Льгот, и ТД мне бы сейчас на 1 элементе понять как это сделать и дальше все одно и тоже только немного поменять
|
|||
29
Mythe
15.06.20
✎
12:42
|
(27) у меня же уже было реализовано то что я перебираю Абонентов и нахожу какой тип я указал в его телефоне и в каком абоненте я это указал
|
|||
30
Mythe
15.06.20
✎
12:43
|
Мне же нужно как то обратиться к ТЧ в ДРУГОМ справочнике из модуля объектов Абоненты
|
|||
31
Mythe
15.06.20
✎
12:45
|
Чтобы сверяло то, что я указал у абонента с тем что есть в типах телефонов и в нужно реквизите в его ТЧ записывало абонента
|
|||
32
Mythe
15.06.20
✎
12:45
|
Сорян что я так туплю, но чет как то тяжко
|
|||
33
Мимохожий Однако
15.06.20
✎
12:46
|
(26) что ты "проводишь"? Про документ ни слова.
|
|||
34
Mythe
15.06.20
✎
12:47
|
При чет тут документ? (33)
|
|||
35
Mythe
15.06.20
✎
12:47
|
Подумаешь ошибся в слове
|
|||
36
Mythe
15.06.20
✎
12:47
|
речь то шла о справочниках
|
|||
37
dezss
15.06.20
✎
14:15
|
(35) Терминология важна, иначе тебя не будут понимать, что и видно в данной теме.
(26) Ну ты в (18) написал, что в элементе справочника ТипыТелефонов хочешь видеть абонентов. Вот и показывай их там, но не пиши туда, а просто показывай! У тебя в абоненте уже есть тип телефона! Ты вообще хоть что-то понимаешь в БД? |
|||
38
Mythe
15.06.20
✎
14:43
|
(37) В БД да, в 1с нихрена
|
|||
39
dezss
15.06.20
✎
14:48
|
(38) Ну так смотри.
Ты в одной таблице, которая абонент, записываешь ссылку на другую, которая тип телефона. А потом хочешь в табличку тип телефона записать абонента. И у тебя получается, что тип телефона ссылается на абонента, а абонент на тип телефона. Нафига это? Тебе же нужно просто показать в типе телефона абонентов, у которых есть такой тип телефйона? Ну так при открытии типа телефона запросом выбираешь всех абонентов, у которых есть такой тип телефона и показываешь их. Все, задача решена. |
|||
40
Mythe
15.06.20
✎
14:54
|
(39) Это же делается в модуле объекта?
|
|||
41
D_E_S_131
15.06.20
✎
15:00
|
(40) В начале на форме элемента справочника ТипТелефона создается элемент для отображения данных (напр. ДинамическийСписок). А потом уже у ДинамическогоСписка устанавливаешь параметр, который выберет нужные данные.
|
|||
42
dezss
15.06.20
✎
15:19
|
(40) Вот в (41) человек правильно пишет.
Это просто отображение данных. Отображение - это форма. В модуле объекта, как правило, располагают методы объекта для обработки данных. |
|||
43
Mythe
15.06.20
✎
15:27
|
(39) Спасибо
|
|||
44
Mythe
15.06.20
✎
15:27
|
Теперь буду пытаться понять как этот запрос сделать
|
|||
45
dezss
15.06.20
✎
15:32
|
(44)
Запрос простейший выбрать различные абонентыданные.ссылка как ссылка из справочник.абоненты.данные как абонентыданные где абонентыданные.типтелефона = &типтелефона Что-то вроде того. Только не забудь параметр установить. И лучше, чтобы был индекс по типтелефона в тч абнентов был. А то будет тормозить. Ну и учиться-учиться и еще раз....ну ты понял))) |
|||
46
Mythe
15.06.20
✎
15:39
|
Справочник.ТипыТелефонов.Форма.ФормаЭлемента.Форма(4,17)}: Тип не определен (Запрос)
Запрос = новый <<?>>Запрос; (Проверка: Тонкий клиент) На форме получается нельзя что ли запросы делать? |
|||
47
Mythe
15.06.20
✎
15:49
|
(45) На форме получается нельзя запрос делать?
Если я пишу: Запрос = Новый Запрос. И выдает ошибку (46) |
|||
48
FIXXXL
15.06.20
✎
15:52
|
(46) НаСервере
|
|||
49
dezss
15.06.20
✎
17:08
|
(46) Можно получить, но только в серверном контексте.
Т.е. перед процедурой/функцией должна быть директива компиляции &НаСервере или &НаСервереБезКонтекста. Какая-то команда вызывает процедуру &НаКлиенте, а ты в этой процедуре вызови свою процедуру/функцию с одной из серверных директив. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |