|
Запись данных из документа в справочник | ☑ | ||
---|---|---|---|---|
0
VSpicy
naïve
16.05.23
✎
11:42
|
Всем доброго дня!
Есть документ "ПланРаботыТС" с табличной частью: Транспортное средство - (справочник "ТС"), Водитель (справочник "Сотрудники"), Телефон (строка). Есть справочник "ТС" с формой заполнения: НаименованиеТС (строка), Модель (справочник "МоделиТС"), ГосНомер (строка), Телефон (строка) и т.п. Задача: Нужно при закрытии документа "ПланРаботыТС" записывать в справочник "ТС" в поле "Телефон", все изменённые телефоны из табличной части документа "ПланРаботыТС". Подскажите пожалуйста каким образом лучше осуществить данную задачу, чтоб при закрытии документа запись в справочник была как можно быстрой, т.к. парк автомобилей порядка 1500 шт.? Заранее благодарен за ответы!!! |
|||
1
Волшебник
16.05.23
✎
11:42
|
Вам не нужно этого делать. Это плохая архитектура, которую надо менять.
|
|||
2
OldCondom
16.05.23
✎
11:43
|
В типовых смотрите регистры сведений "Адреса контрагентов" и прочее
|
|||
3
vicof
16.05.23
✎
11:45
|
(1) +1
|
|||
4
VSpicy
naïve
16.05.23
✎
11:46
|
(1) Согласен, в идеале телефоны нужно записывать и редактировать в справочнике "ТС", а уже в документе "ПланРаботыТС" их отображать...
Но вот руководство хочет иначе) |
|||
5
Мультук
гуру
16.05.23
✎
11:49
|
(1) +1
Но 1) Что мешает выбрать запросом из таб.части только измененные телефоны и записывать только их ? 2) У вас машины делают несколько рейсов в день ? Если нет -- то ночью запускаем регламентное, которое неспеша обновляет телефоны или Создаем регистрСведений "ДокументыПланРаботыТС_ДляОбновленияТелефонов", при проведении добавляем туда ссылку на документ Регламентное работает по этому регистру раз в n-минут |
|||
6
YFedor
16.05.23
✎
11:50
|
(0) А если при закрытии документа один из элементов справочника ТС открыт для редактирования, то что нужно делать в этом случае?
|
|||
7
OldCondom
16.05.23
✎
11:55
|
(6) писать в журнал, каждые 10 минут его обходить и пытаться снова, так до 3 раз.
Я такое видел... |
|||
8
VSpicy
naïve
16.05.23
✎
11:56
|
Делал такой вариант, работает, но запись происходит 25-30 сек.
&НаСервере Процедура ЗаписатьТелефонНаСервере(ПарамТС, ПарамТелефон) СпрТС = Справочники.ТС.НайтиПоНаименованию(ПарамТС).Ссылка.ПолучитьОбъект(); СпрТС.Телефон = ПарамТелефон; Попытка СпрТС.Записать(); Исключение Сообщить("Не удалось записать!"); КонецПопытки; КонецПроцедуры &НаКлиенте Процедура ЗаписатьТелефон(Команда) Для Каждого ТекСтрока Из Объект.ПланТС Цикл ЗаписатьТелефонНаСервере(ТекСтрока.НаименованиеТС, ТекСтрока.Телефон); КонецЦикла; Сообщить("Телефон записан в справочник - ТС!"); КонецПроцедуры |
|||
9
АНДР
16.05.23
✎
12:00
|
СпрТС = Справочники.ТС.НайтиПоНаименованию(ПарамТС).Ссылка.ПолучитьОбъект(); - Это 5!
|
|||
10
VSpicy
naïve
16.05.23
✎
12:02
|
(5) Рейсы могут быть как разовые, так и несколько раз в сутки.
Я кстати тоже задумался о Регистре сведений. |
|||
11
VSpicy
naïve
16.05.23
✎
12:03
|
(6) Вопрос конечно интересный, но скорее всего с этим не будет проблем, т.к. справочником пользуются крайне редко.
|
|||
12
АНДР
16.05.23
✎
12:05
|
(10) Передавай на сервер массив ссылок на ТС и Телефоны. При заполнении формы желательно (будет медленно работать в процессе заполнения, но не будет пиковой нагрузки при записи) иметь признак изменения номера телефона.
|
|||
13
Мультук
гуру
16.05.23
✎
12:09
|
(8)
В данном случае таки есть разница между &НаСервере и &НаСервереБезКонтекста P.S. В остальном: Беда-печаль-огорчение (с) |
|||
14
VSpicy
naïve
16.05.23
✎
12:12
|
(13) Интересно в чём?
|
|||
15
VSpicy
naïve
16.05.23
✎
12:14
|
(14) Чуть быстрее будет, т.к. исключаем обращение к форме...
|
|||
16
Мультук
гуру
16.05.23
✎
12:29
|
(15)
Почему бы: 1) Делать всё это где-нибудь в "ПослеЗаписиНаСервере" (например) Все данные уже на сервере, никуда ходить на надо. 2) тз = Объект.ПланТС.Выгрузить(); Далее пишем запрос а) засовываем туда тз, делаем соединение со справочником по НаименованиеТС, модельТС (вам виднее) Делаем отбор, что телефон в справочнике <> телефон в тз Дальше выборка и в цикле по выборке СпрТС = выборка.Ссылка.ПолучитьОбъект(); СпрТС.Телефон = ПарамТелефон; СпрТС.Записать(); P.S. Будет веселуха, если кто-нибудь перепроведет документ за 2020 год и обновит все телефоны. Вот операторы рады будут. |
|||
17
VSpicy
naïve
16.05.23
✎
12:46
|
(16) Спасибо за отличный вариант, можно будет реализовать...
P.S. Не будет) т.к. запрет на изменение документов в закрытом периоде. |
|||
18
Волшебник
16.05.23
✎
13:05
|
(17) Вы не обратили внимание на пункт "веселуха"
|
|||
19
Волшебник
16.05.23
✎
13:06
|
(17) Все Ваши "запреты" обходятся с помощью Загрузка = Истина или простой сменой даты запрета
|
|||
20
Злопчинский
16.05.23
✎
13:30
|
Правильно написано в (1). У ТС - нет телефона. Телефон - это параметр сделки-рейса с использованием этого ТС.
Соответственно, чтобы получать актуальные телефоны (например), надо работать не со справочником ТС, а (условно) с регистром "незакрытые рейсы". |
|||
21
VSpicy
naïve
16.05.23
✎
14:35
|
(19) У нас хакеров нет)
|
|||
22
Волшебник
16.05.23
✎
14:36
|
(21) А есть дураки?
|
|||
23
VSpicy
naïve
16.05.23
✎
14:51
|
(22) Где их только нет...
|
|||
24
Волшебник
16.05.23
✎
14:53
|
(23) При Вашей архитектуре найдётся дурак, который проведёт вчерашний документ. Телефон в справочнике будет переписан. Потом другой дурак проведёт сегодняшний документ. Телефон опять будет переписан. Так и будете выяснять, какой дурак был последним.
|
|||
25
KJlag
16.05.23
✎
15:10
|
(24) если им уж настооолько нужен этот подход (хз зачем), тогда можно сравнивать перед записью таблицы в объекте и в ссылке (если объект не новый). и работать только с измененными.
|
|||
26
VSpicy
naïve
16.05.23
✎
15:10
|
(24) Это всё понятно, руководство не всегда прислушивается к рекомендациям IT.
Хотя можно конечно эту задачу выполнить иначе, учитывая их пожелания и предусмотреть вышеуказанные нюансы. В любом случае спасибо за предостережения! |
|||
27
Волшебник
16.05.23
✎
15:15
|
(26) Если руководство скажет прыгать с крыши, Вы прыгнете? Заведите промежуточный регистр сведений. Не пишите в справочник при проведении документов.
|
|||
28
VSpicy
naïve
16.05.23
✎
15:29
|
(27)Короче с этим вопросом всё ясно! Спасибо! Совместно с регистром сведений и будет сделано...
|
|||
29
Мимохожий Однако
16.05.23
✎
15:31
|
(26) Назови регистр сведений"Справочник ТС" и пусть куроводство радуется.
|
|||
30
mikecool
16.05.23
✎
17:05
|
(28) наймите архитектора, чтобы грамотно структуру продумывал, и РП, чтобы руководство ставил на место
|
|||
31
VSpicy
naïve
16.05.23
✎
20:56
|
(30) Хорошая идея)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |