| 
    
        
     
     | 
    
  | 
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) все, решено)     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |