|
v7: Перезаписать все элементы справочника. | ☑ | ||
---|---|---|---|---|
0
progaoff
14.11.18
✎
15:57
|
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.БП_ДоговорыСервисногоОбслуживания"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ЭтоГруппа()=0 Тогда Состояние("Обработка "+ Спр.НомерДоговора); Спр.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры В процедуре ПриЗаписи добавил необходимую обработку. Теперь хочу перезаписать все элементы, но в выборку попадает совсем не то количество элементов. И еще вопрос, сработает ли ПриЗаписи? |
|||
1
progaoff
14.11.18
✎
15:58
|
(0) В чем может быть косяк с выборкой элементов?
|
|||
2
Базис
naïve
14.11.18
✎
15:59
|
При записи у тебя сбивается выборка. Сперва в ТЗ кинь и оттуда выбирай, или по порядку кодов/наименований, но тут проверять надо.
|
|||
3
azernot
14.11.18
✎
16:00
|
(0) ПриЗаписи() в форме? Конечно не сработает.
|
|||
4
1Сергей
14.11.18
✎
16:02
|
смотри параметры ВыбратьЭлементы и ПолучитьЭлемент
|
|||
5
Ёпрст
14.11.18
✎
16:03
|
(0)
>>>но в выборку попадает совсем не то количество элементов поди справочник подчиненный |
|||
6
Эльниньо
14.11.18
✎
16:03
|
Обр-ка меняет Наименование. Я угадал?
|
|||
7
Ёпрст
14.11.18
✎
16:03
|
(2) при записи выборка не сбивается
|
|||
8
progaoff
14.11.18
✎
16:05
|
(6) нет, реквизит заполняет из части реквизита другого реквизита.
|
|||
9
Эльниньо
14.11.18
✎
16:10
|
(8) Что значит "совсем не то количество элементов"? Как узнал, что совсем не то?
|
|||
10
progaoff
14.11.18
✎
16:11
|
(9) Да их там больше 3К а выбирает за 5 секунд.
|
|||
11
progaoff
14.11.18
✎
16:11
|
(5) Не похоже на подчинённый справочник
|
|||
12
Ёпрст
14.11.18
✎
16:12
|
см 5, затем 4
|
|||
13
ptiz
14.11.18
✎
16:17
|
Иерархический наверняка.
|
|||
14
ptiz
14.11.18
✎
16:17
|
Собственно, видно по коду
|
|||
15
progaoff
14.11.18
✎
16:17
|
(12) Без учета иерархии и с учетом иерархии - тоже самое.
|
|||
16
Масянька
14.11.18
✎
16:18
|
(15) ПорядокКодов не пробовал?
|
|||
17
Масянька
14.11.18
✎
16:20
|
(15) И это - ты по сообщить считаешь, что выборка меньше?
|
|||
18
Ёпрст
14.11.18
✎
16:20
|
Видать, не тот справочник обрабатывает, инфа 100%
|
|||
19
progaoff
14.11.18
✎
16:21
|
(18) ага) я уже это понимаю, только не пойму с какого ф...а.
|
|||
20
ptiz
14.11.18
✎
16:21
|
ВыбратьЭлементы(<?>)
Синтаксис: ВыбратьЭлементы(<Режим>) Назначение: Открыть выборку элементов справочника. Возвращает: 1 - если действие выполнено и в выборке есть хотя бы один элемент; 0 - если действие не выполнено или в выборке нет ни одного элемента. Параметры: <Режим> - как выбирать: 1 - выбирать элементы с учетом иерархии, 0 - выбирать элементы без учета иерархии (необязателен, по умолчанию - 1). |
|||
21
progaoff
14.11.18
✎
16:26
|
(20) это понятно
|
|||
22
progaoff
14.11.18
✎
16:35
|
(18) Состояние("Обработка "+ Спр.НомерДоговора);
Даже не те номера показывает. |
|||
23
Ёпрст
14.11.18
✎
16:37
|
(22) обрабатываешь не тот ВИД справочника, открой ужо пофигуратор
|
|||
24
Карст
14.11.18
✎
16:38
|
запросом - запрос выгрузить в ТЗ - обход ТЗ и меняй чо хошь
|
|||
25
DmitriyDI
14.11.18
✎
16:38
|
(22) не понятно, где находятся "те номера"? возможно просто надо обрабатывать другой справочник, а не "БП_ДоговорыСервисногоОбслуживания", код в (0) рабочий.
|
|||
26
progaoff
14.11.18
✎
16:44
|
(25) Выловил.
|
|||
27
Масянька
14.11.18
✎
16:44
|
(26) Колись... Общественность ждет.
|
|||
28
progaoff
14.11.18
✎
16:51
|
Состояние("Обработка "+ Спр.НомерДоговора); Состояние - вообще не то что нужно.
+ форма списка с элементами этого справочника, имеет порядка 7 фильтров) вот я и не видел договоров всех |
|||
29
Масянька
14.11.18
✎
17:12
|
(28) А где в (0) фильтры?
|
|||
30
progaoff
14.11.18
✎
17:29
|
(29) я искал по номеру договора, в форме списка, которая отфильтрована была, а так все норм, теперь бы придумать как инн перезаписать, так как ПриЗаписи не срабатывает.
|
|||
31
Builder
14.11.18
✎
17:38
|
(30) Че тут думать то...
Спр.ИНН = НовыйИНН; Спр.Записать(); |
|||
32
progaoff
14.11.18
✎
17:47
|
(31)все было бы здорово, но нужно отделить ип от ООО, так как инн разный по количеству цифр, а рукожопые менеджеры делали запись в поле инн - инн/кпп, вот мне и нужно то что до слеша отделить.
|
|||
33
azernot
14.11.18
✎
18:03
|
(32) Стандартная для 1С Бух 77 ситуация, когда ИНН/КПП в одном поле.
|
|||
34
progaoff
14.11.18
✎
18:11
|
(33) У меня в полном наименовании контрагента идут первыми символами ИП и ООО, вот пытаюсь сравнить.
|
|||
35
azernot
14.11.18
✎
18:12
|
(34) Зачем? Ищешь слэш в ИНН, если до слэша 12 символов - это ИП, если 10 - это не ИП.
|
|||
36
progaoff
14.11.18
✎
18:17
|
(35) может быть / а может и \
|
|||
37
azernot
14.11.18
✎
18:19
|
(36) А ну всё, проблема нерешаема :)
|
|||
38
azernot
14.11.18
✎
18:19
|
Если ПустоеЗначение(ИНН) = 1 Тогда
ИначеЕсли Найти(ИНН,"\")> 0 Тогда КПП = Прав(ИНН,СтрДлина(ИНН)-Найти(ИНН,"\")); ИНН = Лев(ИНН,Найти(ИНН,"\")-1); ИначеЕсли Найти(ИНН,"/")> 0 Тогда КПП = Прав(ИНН,СтрДлина(ИНН)-Найти(ИНН,"/")); ИНН = Лев(ИНН,Найти(ИНН,"/")-1); КонецЕсли; |
|||
39
progaoff
14.11.18
✎
18:24
|
СтрокаИП = "ИП";
СтрокаООО = "ООО"; Пока Спр.ПолучитьЭлемент(0) = 1 Цикл СтрокаДляСравнения = Лев(Спр.Контрагент.ПолнНаименование,3); Если Спр.ЭтоГруппа()=0 Тогда Если СтрокаДляСравнения = СтрокаИП Тогда Спр.ИНН = Лев(Спр.Контрагент.ИНН,12) ИначеЕсли СтрокаДляСравнения = СтрокаООО Тогда Спр.ИНН = Лев(Спр.Контрагент.ИНН,10) КонецЕсли; Сообщить("Обработка "+ Спр.ИНН); Спр.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
40
progaoff
14.11.18
✎
18:26
|
(39) Хрень?
|
|||
41
azernot
14.11.18
✎
18:27
|
(39) дай угадаю, в базе не окажется ни одного ИП-ника? ;)
Лев(Спр.Контрагент.ПолнНаименование,3) всегда будет не равно "ИП" А что ты будешь делать, например с ОАО "Газпром"? Или ЗАО "Василёк"? |
|||
42
progaoff
14.11.18
✎
18:28
|
(41) да:)
|
|||
43
progaoff
14.11.18
✎
18:28
|
(41) Нет таких, проверял
|
|||
44
progaoff
14.11.18
✎
18:29
|
(41) все, решено)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |