|
Найти ссылку передаваемого параметра запросом. | ☑ | ||
---|---|---|---|---|
0
JuixyJes
13.09.19
✎
17:14
|
Имеется дох***а нетиповых документов, мне нужно вытащить ссылку запросом на этот документ, для того чтобы поменять в нем данные программно, как это сделать?
|
|||
1
sqr4
13.09.19
✎
17:16
|
(0) ты же уже не маленькая девочка, ну сформулируй нормально. Что за ссылка - это УИД или еще чтото?
|
|||
2
trooba
13.09.19
✎
17:17
|
(0) Нифига не понятно
|
|||
3
hhhh
13.09.19
✎
17:17
|
(0) выбрать ссылка из твойнетиповойдокумент
|
|||
4
JuixyJes
13.09.19
✎
17:18
|
(3) Мне бы ссылку из любого документа вытаскивать. (1) Ссылка - это ссылка на документ.
|
|||
5
JuixyJes
13.09.19
✎
17:19
|
(3) Или вы предлагаете Выбрать Ссылка из &Документ ?
|
|||
6
trooba
13.09.19
✎
17:19
|
Выбрать Дох.Ссылка из Дох как дох
|
|||
7
ptiz
13.09.19
✎
17:19
|
Выбрать &Документ
|
|||
8
trooba
13.09.19
✎
17:20
|
(5) Разные типы документов? Их (типов) количество и типы известны?
|
|||
9
Zhuravlik
13.09.19
✎
17:21
|
(0) Опираясь на метаданные динамически сформировать текст запроса
|
|||
10
trooba
13.09.19
✎
17:22
|
(9) +1
|
|||
11
JuixyJes
13.09.19
✎
17:22
|
(8) Да, их несколько, штук 20
|
|||
12
JuixyJes
13.09.19
✎
17:23
|
(9) я так и хотела, но вот проблема, штук 20 это примерно, не известно сколько их
|
|||
13
hhhh
13.09.19
✎
17:24
|
(11) ну если меньше 200, то никакой проблемы
|
|||
14
sqr4
13.09.19
✎
17:26
|
(12) для каждого Документ из метаданные.документы
|
|||
15
JuixyJes
13.09.19
✎
17:28
|
(14) ВЫБРАТЬ
мЗаявкаНаЗайм.Номер КАК Номер, мЗаявкаНаЗайм.ПодразделениеОрганизации, ПодразделенияОрганизаций.Код, ИЗ Документ.мЗаявкаНаЗайм КАК мЗаявкаНаЗайм ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций ПО мЗаявкаНаЗайм.ПодразделениеОрганизации = ПодразделенияОрганизаций.Ссылка ГДЕ мЗаявкаНаЗайм.ПодразделениеОрганизации = &ПодразделениеОрганизации УПОРЯДОЧИТЬ ПО Номер |
|||
16
JuixyJes
13.09.19
✎
17:29
|
и типо как текст менять то?
|
|||
17
JuixyJes
13.09.19
✎
17:31
|
мне, как я понимаю нужно менять в запросе => мЗаявкаНаЗайм <= вот это
|
|||
18
sqr4
13.09.19
✎
17:32
|
(16) напиши по русски а не по китайски, по полочкам что тебе нужно сделать. Я пока не понимаю что нужно сделать.
|
|||
19
hhhh
13.09.19
✎
17:35
|
(16) Запрос.Текст = Запрос.Текст + Текст;
и так 200 раз |
|||
20
sqr4
13.09.19
✎
17:36
|
(19) да там видишь соединение, т.е надо проверять еще на доступность реквизитов
|
|||
21
sqr4
13.09.19
✎
17:36
|
ну вообщем с метаданными работа все верно написано в (9)
|
|||
22
JuixyJes
13.09.19
✎
17:36
|
В базе много подразделений. Мне нужно чтобы при создании любого нового документа для каждого подразделения шла своя нумерация.
|
|||
23
JuixyJes
13.09.19
✎
17:37
|
Возможно я тут зря так сильно загоняюсь и есть решение проще?
|
|||
24
sqr4
13.09.19
✎
17:39
|
(23) ты бы с фотокой в купальнике так разгонялась. Нумерация идет в рамках одного вида документа или общая для всех?
|
|||
25
hhhh
13.09.19
✎
17:39
|
(20) не нужно там соединение
просто мЗаявкаНаЗайм.ПодразделениеОрганизации.Код а соединение выкинуть |
|||
26
sqr4
13.09.19
✎
17:39
|
(23) самой делать нумерацию, та еще забава, все равно не получится нормально
|
|||
27
JuixyJes
13.09.19
✎
17:40
|
(24) в рамках одного вида документа
|
|||
28
JuixyJes
13.09.19
✎
17:43
|
+(27) Просто нужно сделать так. Если еще не было по этому подразделению то дать номер документу допустим ПРК000001, потом ПРК000002 и тд, тут так хоп, другое подразделение, по нему еще не было документов, ему так БАХ ПРД000001, ПРД000002 и тд и тп
|
|||
29
hhhh
13.09.19
✎
17:45
|
(27) тогда тут ссылки вообще не нужны. и запросы тоже. тебе нужно просто присвоить для разных подрезделений разные префиксы. и всё. а система по префиксам сама присвоит нужный номер.
|
|||
30
sqr4
13.09.19
✎
17:46
|
(28) вот поэтому и надо давать нормальный формулировки. Фото срочно, радуй помогал, да еще и в праздник)
|
|||
31
hhhh
13.09.19
✎
17:48
|
(28) просто подразделению Кобры даешь префикс ПРК, а подразделению Гадюшник даешь префикс ПРГ. И всё. Остальное само всё сделается.
|
|||
32
JuixyJes
13.09.19
✎
17:59
|
(31) Тут проблема в том, что база частично РИБовая, частично нет. И префиксы уже есть у подразделений, и документы все идут с префиксом ЦБ, поэтому и нужно как то это поправить.
|
|||
33
sqr4
13.09.19
✎
17:59
|
(32) Нда...
|
|||
34
JuixyJes
13.09.19
✎
18:00
|
(33) Ну не мы такие, клиенты такие.
|
|||
35
novichok79
13.09.19
✎
18:10
|
(0) можно и без запроса
Если Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(ДокументСсылка)) Тогда ДокументОбъект = ДокументСсылка.ПолучитьОбъект(); КонецЕсли; |
|||
36
hhhh
13.09.19
✎
18:11
|
(32) ну это понятно идет префикс ИБ + префикс подразделения. Будет теперь у вас ЦБПРГ, ПБПРГ и так далее.
|
|||
37
JuixyJes
16.09.19
✎
09:16
|
(35) вот это решение мне нравится. Но как мне префиксацию документов сделать таким методом? Ведь мне все равно нужно найти есть ли документы с этим подразделением и установленным префиксом.
|
|||
38
DmVl76
16.09.19
✎
09:54
|
(32) Если документы по одному подразделению создаются в разных распределенных базах - то только (36) - префикс узла+префикс подразделения.
|
|||
39
novichok79
16.09.19
✎
10:58
|
(37) в событии "ПриУстановкеНовогоНомера" документа?
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | 1 |ИЗ | Документ.РеализацияУслугПрочихАктивов КАК РеализацияУслугПрочихАктивов |ГДЕ | ПОДСТРОКА(РеализацияУслугПрочихАктивов.Номер, 6, 1) = ""У"""; Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Префикс = "0"; Иначе Префикс = ""; КонецЕсли; КонецПроцедуры |
|||
40
novichok79
16.09.19
✎
11:00
|
(37) это будет тормозить, но лучше этого 1С не придумала ничего.
|
|||
41
JuixyJes
16.09.19
✎
11:09
|
Префикс указала так:
Если Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Получить()<>"" Тогда Префикс = Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Получить(); //ЛМА Если Префикс = "ЦБ" Тогда Префикс = Лев(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(Пользователи.ТекущийПользователь(), "ОсновноеПодразделениеОрганизации").Код,3); КонецЕсли; //ЛМА КонецЕсли; |
|||
42
JuixyJes
16.09.19
✎
11:10
|
Но тут вопрос, нумерация пошла по одному месту, ибо ЦБ документы идут с нумерацией другой, мне нужно найти последний документ с префиксом, который у подразделения
|
|||
43
novichok79
16.09.19
✎
11:15
|
(42) в бизнес-логику я не хочу въезжать. если надо получить последний документ с префиксом, который есть у подразделения, тогда запроса с агрегацией по максимуму не избежать, а значит решение будет однозначно тормозить. я так уже делал, лет 6 назад, потом пришлось менять логику, чтобы пользователи могли документы записывать.
по коду - зачем 2 раза получать Константы.ПрефиксУзлаРаспределеннойИнформационнойБазы.Получить() можно получить 1 раз + вот здесь Префикс = Лев(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(Пользователи.ТекущийПользователь(), "ОсновноеПодразделениеОрганизации").Код,3) код получается через разыменование, система возьмет из базы весь объект. легче и правильнее код через запрос вытащить. |
|||
44
JuixyJes
16.09.19
✎
11:18
|
(43) мой код исключительно между комментариев, то что было до этого сказано не трогать.
|
|||
45
novichok79
16.09.19
✎
11:18
|
длина номера документа = префикс + нумератор от 1С.
соответственно, если сделать префикс "КАРТОХА", то 1С при записи найдет документ с максимальным кодом, который начинается на "КАРТОХА" и добавит 1 к номеру, полученный номер присваивается документу. как-то так. |
|||
46
novichok79
16.09.19
✎
11:19
|
(44) 1С любит все унифицировать, в итоге получается тормознутое УГ в некоторых местах.
|
|||
47
novichok79
16.09.19
✎
11:20
|
ну и префикс "ЦБ" наверное лучше вынести в константу, а не хардкодить.
|
|||
48
JuixyJes
16.09.19
✎
11:29
|
(47) я префиксацию такую показала клиенту, все устроило (там видимо программисты слабенькие)
|
|||
49
JuixyJes
16.09.19
✎
11:31
|
Итак, вернемся к вопросу о восстановлении нумерации. у меня допустим есть документ последний ГРЛ0000567 следующий, поидее должен быть ГРЛ0000568, а по факту имею ГРЛ0001023, т.к. документ с префиксом ЦБ последний был ЦБ00001022
|
|||
50
novichok79
16.09.19
✎
11:32
|
(48) ну раз все ок, то "окончен бой, беру портвейн, иду домой" :)
|
|||
51
novichok79
16.09.19
✎
11:32
|
(49) нумерация в пределах года?
|
|||
52
JuixyJes
16.09.19
✎
11:33
|
(51) да
|
|||
53
novichok79
16.09.19
✎
11:35
|
(52) так поменяй ее, иначе у тебя счетчик каждый год сбрасываться будет.
|
|||
54
JuixyJes
16.09.19
✎
11:38
|
(53) А это и надо клиенту оставить. Просто сейчас нужно сделать так, чтобы находился документ, последний с префиксом нужным и к коду добавлялась 1
|
|||
55
novichok79
16.09.19
✎
11:41
|
(54) ну так "работайте, братья"
|
|||
56
JuixyJes
16.09.19
✎
11:49
|
(55) Подскажите, как найти документ с самым большим номером с нужным префиксом?
|
|||
57
JuixyJes
16.09.19
✎
12:16
|
Решила проблему с префиксом иным способом, подпиской на событие для всех документов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |