17 правил для составления оптимального ЗАПРОСа к данным базы 1С 48
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине.
Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)):
НаКлиенте
Процедура Загрузки()
ПутьКБазе=» D:ВашаБаза1с77″ ;
Пользователь=
Cклонения по падежам 6
НаКлиенте
Процедура Команда1(Команда)
ФИО = » Иванов Иван Иванович» ;
Падеж = 2;
Пол = 1;
Результат = СклонениеФИО(ФИО, Падеж, пол);
Сообщить(Результат);
КонецПроцедуры
НаСервере
Функция СклонениеФИО(ФИО, Падеж, пол)
Результат = » » ;
Google maps : вывод точек на карту и режим панорамы 8
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора
Посмотреть все результаты поиска похожих
30.06.11 — 12:07
Есть идентификатор вида : 209:971a0018f34e121411e03c1de5b80387
Хочу найти что за объект в базе ему соответствует. Как?
1 — 30.06.11 — 12:09
А где ты его берешь?
2 — 30.06.11 — 12:09
шерстить каждый объект отдельно
3 — 30.06.11 — 12:10
209 — идентификатор типа, остальное — перемиксованный объект УникальныйИдентификатор
4 — 30.06.11 — 12:10
(1) Да после обмена делаю ТИИ оно говорит:
Проверка логической целостности. Последовательность.Взаиморасчеты <Объект не найден> (209:971a0018f34e121411e03c1de5b80387)
Неверная ссылка на регистратор.
5 — 30.06.11 — 12:10
НовыйGUID = Новый УникальныйИдентификатор(ТвойГуид);
СсылкаГУИД=Документы.ВидДок.ПолучитьСсылку(НовыйGUID);
6 — 30.06.11 — 12:11
(4)Если <Объект не найден> , то с чего ты взял, что ты его найдешь если база не нашла?
7 — 30.06.11 — 12:11
(5) щас попробую
8 — 30.06.11 — 12:12
(6) Ну я же на копии, у меня есть и оригинал, где обмен не запускал …
9 — 30.06.11 — 12:12
(5) читай ветку
(4) блииин. сделай запрос по регистру «Взаиморасчеты» примерно такой
Выбрать
Взаиморасчеты.Регистратор
Из
РегистрНакопления.Взаиморасчеты
Где
Взаиморасчеты.Регистратор.Номер Есть NULL
получишь твою ссылку. потом по ней отбор набора записей и запись пустого набора
10 — 30.06.11 — 12:13
ну а вообще — после обмена — это нормально, если криво правила настроены, или не криво, но это заложено в логику
11 — 30.06.11 — 12:14
(9)<Объект не найден> <> NULL
12 — 30.06.11 — 12:14
+ Ссылка не пустая. Она битая
13 — 30.06.11 — 12:15
(10) Самое прикольное, что это стандартный обмен БП 2.0 по организации. Там постоянно вылезают такие бяки
14 — 30.06.11 — 12:16
Выбрать Регистратор Из Последовательность.Взаиморасчеты где Регистратор.Ссылка есть NULL
Но что ты в базе собрался искать, если проблема как раз в том, что в базе его нет?
15 — 30.06.11 — 12:16
(11) я там не зря написал «.Номер»
16 — 30.06.11 — 12:18
(11) А не является ли «.Номер» неявным левым соединением?
Варианты ответа:
1) да, является.
2) нет, является.
17 — 30.06.11 — 12:19
(11) и кстати, да:
NULL <> NULL
18 — 30.06.11 — 12:20
раз объект не найден, то нет его нигде. Если база SQL, восстанавливай бекап, ищи в SQL таблицах средствами SQL, по таблице и поймешь что за объект
19 — 30.06.11 — 12:21
(18) в копии он может и оказаться, почему же нигде?
20 — 30.06.11 — 12:22
(18) Ащета запрос из (9) дает тебе готовую ссылку. У которой даже и тип имеется. Для зачем что-то по таблицам SQL искать?
21 — 30.06.11 — 12:23
+(19) В том и дело, что он где-то есть: либо в базе до обмена, либо в узле откуда обмен принимали …
Вот и хочу найти что это было и почему объект удалился, а из последовательности не изьялся …
22 — 30.06.11 — 12:24
(20) В запросе (9) обращаемся к регистру накопления, но ТИИ не нашла в нем ссылок на несуществующие объекты …
23 — 30.06.11 — 12:24
(20) Не увидел 4 сообщение. Думал вообще ничего не известно, кроме гуида
24 — 30.06.11 — 12:25
(22) ну удали из последовательности
25 — 30.06.11 — 12:41
(22) Ну, ять, в (14) Посмотри. БОЛЬШАЯ разница, ага…
26 — 30.06.11 — 12:45
(25) Да разница-то небольшая, только что там в последовательности-то найдешь? Ну найдешь битые записи, а что за объект был все равно не известно …
27 — 30.06.11 — 12:53
ПЦ
28 — 30.06.11 — 13:23
(26) рукалицо…
29 — 30.06.11 — 13:30
(17) (NULL IS NULL) = TRUE
30 — 30.06.11 — 13:51
ТЗ = ПолучитьСтруктуруХраненияБазыДанных();
Для Каждого Строка Из ТЗ Цикл
Если Не ЗначениеЗаполнено(Строка.ИмяТаблицы) Тогда Продолжить; КонецЕсли;
ПозТочки = Найти(Строка.ИмяТаблицыХранения, «.»);
Если ПозТочки > 0 Тогда
Продолжить;
ИмяТаблицы = Лев(Строка.ИмяТаблицыХранения, ПозТочки — 1);
КонецЕсли;
ИтоговоеЧисло = «»;
Для Сч = 1 По СтрДлина(Строка.ИмяТаблицыХранения) Цикл
Символ = Сред(Строка.ИмяТаблицыХранения, Сч, 1);
Если Найти(«0123456789», Символ) > 0 Тогда
ИтоговоеЧисло = ИтоговоеЧисло + Символ;
КонецЕсли;
КонецЦикла;
Если ИтоговоеЧисло = «209» Тогда
Сообщить(Строка.ИмяТаблицы);
КонецЕсли;
КонецЦикла;
31 — 30.06.11 — 13:53
(30) А что *это* делает?
32 — 30.06.11 — 13:58
(30) поможет узнать имя объекта по типу 209..
33 — 30.06.11 — 14:01
(31) это запустить в базе где отсутствует
(30)+
потом в базе источнике запустить
Поз = Найти(СтрокаОбъекта, «:»);
Тип = Лев(СтрокаОбъекта, Поз — 1);
СтрокаУИД = Сред(СтрокаОбъекта, Поз + 1);
СтрокаУИД = Сред(СтрокаУИД, 24, + «-» + Сред(СтрокаУИД, 20, 4) + «-» + Сред(СтрокаУИД, 16, 4) + «-» + Сред(СтрокаУИД, 1, 4) + «-» + Сред(СтрокаУИД, 5, 12);
Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаУИД));
справочники.номенклатура. заменить на имятипа что покажет в обработке
34 — 30.06.11 — 14:01
(32) см (14)
35 — 30.06.11 — 14:03
(34) и что это покажет? что «объект не найден <209:971a0018f34e121411e03c1de5b80387>»?? а как понять что за объект конкретно?
36 — 30.06.11 — 14:06
(35) ссылка будет на конкретный объект метаданных
37 — 30.06.11 — 14:06
(35) рукалицо…
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать РАЗЛИЧНЫЕ Регистратор Из Последовательность.Взаиморасчеты где Регистратор.Ссылка есть NULL";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(ТипЗнч(Выборка.Регистратор));
КонецЦикла;
38 — 30.06.11 — 14:06
хоть и отсутствующий
Axel2009
39 — 30.06.11 — 14:13
(37) был не прав.
Способ может быть не самый лучший, но работает. Если мы знаем, в каких метаданных мы ищем, то все предельно просто:
Создаем уникальный идентификатор с имеющимся у нас текстом ГУИДа и пользуемся замечательной функцией «ПолучитьСсылку».
ГУИД = Новый УникальныйИдентификатор(СтрокаГУИД); НайденнаяСсылка = <НашиМетаданные>.<НашаТаблица>.ПолучитьСсылку(ГУИД);
Если мы не знаем, к каким метаданным относится объект с нашим ГУИДом, то придется перебрать все метаданные и таблицы. Как правило задача эта довольно своеобразная, но если уж вам понадобилось искать объект по всей базе по ГУИДу, то элементарная база у вас есть, а написать алгоритм для обхода всех метаданных для вас труда не составит.
Пример поиска:
ГУИД = "4b9c2fa7-3824-11ea-ab9e-38d547def818";
ОбъектСсылка = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИД));
сообщить(ОбъектСсылка);
если объект не найден:
<Объект не найден> (206:ab9e38d547def81811ea38244b9c2fa7)
если объект найден (наименование объекта):
Желтый НМ 0,05кг
Рубрики
- Все
- CRM
- Битрикс24
- Frameworks
- Laravel
- Bootstrap 4
- React Native
- CMS
- OpenCart 3
- WordPress
- Функции
- Авторские функции
- 1С-Битрикс
- MODX
- АТС
- Asterisk
- OS
- Linux
- Fedora
- Linux Mint
- Manjaro
- Rocky Linux
- CentOS
- Debian
- Ubuntu
- Windows
- macOS
- Linux
- Контейнеризация
- Docker
- Программирование
- 1C
- Javascript
- Node JS
- PHP
- Python
- Android Studio
- Web
- Библиотеки
- Базы данных
- MySQL
- 1С
- Плагины DW
- WordPress
- Редакторы и IDE
- PHPStorm
- VS Code
- Sublime Text 3
- Notepad++
- Софт
- Blockchain
Свежие комментарии
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Katywka
Дата регистрации: 21.01.2010
Сообщений: 155
1С 8.1<br>Как найти элемент справочника по уникальному идентификатору????<br>
Prikum
активный пользователь
офлайн
Дата регистрации: 18.02.2002
Сообщений: 20872
Синтакс-помощником не пробовали пользоваться? <br>З,Ы,<br>СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)<br>ПолучитьСсылку (GetRef)<br>Синтаксис:<br>ПолучитьСсылку(<Уникальный идентификатор>) <br>Параметры:<br><Уникальный идентификатор> (необязательный)<br>Тип: УникальныйИдентификатор. Уникальный идентификатор, из которого будет формироваться ссылка. <br>Возвращаемое значение:<br>Тип: СправочникСсылка. <br>Описание:<br>Формирует ссылку из значения типа УникальныйИдентификатор.<br>Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор. <br>Примечание:<br>Если параметр не указан, то будет сформирована новая уникальная ссылка. <br>См. также:<br>СправочникСсылка, метод УникальныйИдентификатор
Показывать по
10
20
40
сообщений