|   |   | 
| 
 | Изменение справочника номенклатура | ☑ | ||
|---|---|---|---|---|
| 0
    
        Triton_11 18.04.14✎ 08:57 | 
        Как можно в справочнике номенклатура изменить код справочника чтобы бы в код добавлялся префикс например БГ
 Например: Код наименование 0001 лопата 0002 совок 0003 ведро стало: БГ01 лопата БГ02 совок БГ03 ведро это необходимо сделать с помощью внешней обработки | |||
| 1
    
        Triton_11 18.04.14✎ 08:58 | 
        Я сделал так но неправильно
 Процедура КнопкаВыполнитьНажатие(Кнопка) Префикс = "БГ"; Спр = Справочники.Номенклатура.Выбрать(); Пока Спр.Следующий() Цикл СпрОбъект = спр.ПолучитьОбъект(); А = СпрОбъект.Код; СпрОбъект.Код = Префикс + А; СпрОбъект.Записать(); КонецЦикла; КонецПроцедуры | |||
| 2
    
        Ёпрст гуру 18.04.14✎ 08:59 | 
        продолжайте наблюдение     | |||
| 3
    
        cw014 18.04.14✎ 08:59 | 
        СпрОбъект.Код = Префикс + Прав(СпрОбъект.Код, СтрДлина(СпрОбъект.Код) - СтрДлина(Префикс));     | |||
| 4
    
        ProProg 18.04.14✎ 09:05 | 
        Есть миллион перенумераторов в гугле     | |||
| 5
    
        Triton_11 18.04.14✎ 09:05 | 
        (3) спасибо     | |||
| 6
    
        Triton_11 18.04.14✎ 09:07 | 
        и еще вопрос например:
 Код наименование 0001 лопата 0003 совок 0005 ведро 0007 ложка 0009 вилка 0011 кружка необхадимо чтоб стало: 0001 лопата 0002 совок 0003 ведро 0004 ложка 0005 вилка 0006 кружка | |||
| 7
    
        cw014 18.04.14✎ 09:09 | 
        (6) 1. Выучи русский язык - необхОдимо
 2. ОбменДанными.Загрузка = Истина тебе в помощь | |||
| 8
    
        Triton_11 18.04.14✎ 09:10 | 
        (7) cw014 а что за ОбменДанными     | |||
| 9
    
        Godofsin 18.04.14✎ 09:17 | 
        (8) В универсальнойОбработкеСправочниковИДокументов есть отличный нумератор     | |||
| 10
    
        Triton_11 18.04.14✎ 09:20 | 
        (9) мне необходимо решить эту задачу без использования нумератора 
 необходимо сделать это с помощью внешней обработки который я сам сделаю | |||
| 11
    
        Godofsin 18.04.14✎ 09:23 | 
        (10) Зачем изобретать велосипед? Или это задание при устройстве на работу?     | |||
| 12
    
        Godofsin 18.04.14✎ 09:25 | 
        (6) Если нет контроля уникальности номера, тупо бери выборку элементов с сортировкой по алфавиту и присваивай им номер+1     | |||
| 13
    
        Triton_11 18.04.14✎ 09:25 | 
        (11) это можно сказать тестовые и обучающие задания     | |||
| 14
    
        Triton_11 18.04.14✎ 09:26 | 
        (12) программно покажите как     | |||
| 15
    
        Godofsin 18.04.14✎ 09:28 | 
        (14) Сначала ты покажи как пробуешь.     | |||
| 16
    
        Triton_11 18.04.14✎ 09:31 | 
        (15) честно говоря я даже не знаю как программно это можно реализовать не имею представления     | |||
| 17
    
        Красный рассвет 18.04.14✎ 09:50 | 
        (16) Попробуй разобраться, как сделано в (9)     | |||
| 18
    
        Triton_11 18.04.14✎ 10:01 | 
        (17) Я не нашел эту обработку примерно покажите как можно упорядочить     | |||
| 19
    
        Triton_11 18.04.14✎ 10:35 | 
        Процедура ОсновныеДействияФормыУпорядовочивание(Кнопка)
 Спр = Справочники.Номенклатура.Выбрать(); Пока Спр.Следующий() Цикл СпрОбъект = спр.ПолучитьОбъект(); СпрОбъект.Код = СтрЗаменить(Спробъект.Код,СпрОбъект.Код,СпрОбъект.Код+1); СпрОбъект.Записать(); КонецЦикла; КонецПроцедуры | |||
| 20
    
        Triton_11 18.04.14✎ 12:57 | 
        Подскажите как можно решить эту задачу     | |||
| 21
    
        Triton_11 18.04.14✎ 14:26 | 
        помогите пожалуйста как можно решить задачу с (6) я прогуглил но ничего толком не нашел     | |||
| 22
    
        Triton_11 18.04.14✎ 15:28 | 
        (9) Я в этой универсальной обработке не нашел нумератор     | |||
| 23
    
        Михаил Козлов 18.04.14✎ 15:41 | 
        (22) А я нашел.     | |||
| 24
    
        Triton_11 18.04.14✎ 15:45 | 
        (23) скажи где     | |||
| 25
    
        scanduta 18.04.14✎ 15:46 | 
        Обработка УниверсальныйПодборИОбработкаОбъектов     | |||
| 26
    
        scanduta 18.04.14✎ 15:46 | 
        на ИТС     | |||
| 27
    
        Triton_11 18.04.14✎ 15:47 | 
        (25) у меня такой обработки нет     | |||
| 28
    
        Triton_11 18.04.14✎ 15:48 | 
        (27) :((     | |||
| 29
    
        Triton_11 18.04.14✎ 15:49 | 
        (9) а эта обработка называется ГрупповаяОбработкаСправчониковИДокументов     | |||
| 30
    
        Triton_11 21.04.14✎ 08:23 | 
        подскажите как можно решить эту (6) задачу     | |||
| 31
    
        Wobland 21.04.14✎ 08:28 | 
        (30) а почему совок должен стать вторым номером?     | |||
| 32
    
        Triton_11 21.04.14✎ 08:40 | 
        (31) надо упорядочить по порядку     | |||
| 33
    
        Triton_11 21.04.14✎ 09:16 | 
        ап     | |||
| 34
    
        vovus 21.04.14✎ 09:36 | 
        это какой работодатель так много времени на выполнение тестового задания дает?     | |||
| 35
    
        Triton_11 21.04.14✎ 09:37 | 
        (34) ну это обучающие и тестовые задачи
 мне хотя бы сегодня надо ее сделать | |||
| 36
    
        barrgand 21.04.14✎ 09:43 | 
        (35) Чтоб мне только такие задачи всегда давали..     | |||
| 37
    
        Triton_11 21.04.14✎ 09:45 | 
        (36) ну как ее можно решить подскажите     | |||
| 38
    
        vovus 21.04.14✎ 09:47 | 
        Не важно, какой именно там у тебя порядок, допустим, ты как-то упорядочил и перебираешь элементы.
 Сч=0; Пока Спр.Следующий Цикл Сч=Сч+1; ТекСпр=Спр.ПолучитьОбъект(); ТекСпр.ОбменДанными.Загрузка=Истина; ТекСпр.Код=Префикс+Формат(Сч,"ЧЦ=4;ЧГ="); ТекСпр.Записать(); КонецЦикла | |||
| 39
    
        vovus 21.04.14✎ 09:48 | 
        + да, в форматную строку еще не помешает "ЧВН="     | |||
| 40
    
        Triton_11 21.04.14✎ 09:53 | 
        (38) че то не работает
 я сделал так Процедура ОсновныеДействияФормыУпорядовочивание(Кнопка) Префикс = "БР"; Спр = Справочники.Номенклатура.Выбрать(); Сч=0; Пока Спр.Следующий() Цикл Сч=Сч+1; ТекСпр=Спр.ПолучитьОбъект(); ТекСпр.ОбменДанными.Загрузка=Истина; ТекСпр.Код=Префикс+Формат(Сч,"ЧЦ=4;ЧГ="); ТекСпр.Записать(); КонецЦикла; КонецПроцедуры он не упорядочил | |||
| 41
    
        vovus 21.04.14✎ 09:54 | 
        синтакс-помощник метод "Выбрать" справочника, 4 параметр     | |||
| 42
    
        Triton_11 21.04.14✎ 09:57 | 
        (41) 
 <Порядок> (необязательный) Тип: Строка. Строка с именем реквизита справочника, определяющая упорядочивание элементов в выборке. Может быть указано "Код", "Наименование" или имя одного из реквизитов примитивного типа (Число, Строка, Дата, Булево), для которого установлен признак "Индексирование" в значение "Индексировать" или в "Индексировать с дополнительным упорядочиванием" в конфигураторе. После имени реквизита через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Если параметр не указан, то порядок определяется основным представлением справочника. Значение по умолчанию: Пустая строка. что то я не понял как можно упорядочить подскажи как | |||
| 43
    
        vovus 21.04.14✎ 09:58 | 
        Например так:
 Справочники.Номенклатура.Выбрать("Наименование") | |||
| 44
    
        vovus 21.04.14✎ 09:59 | 
        т.е. выбрать(,,,"Наименование"), ну ты понел     | |||
| 45
    
        Triton_11 21.04.14✎ 10:02 | 
        я сделал так
 Спр = Справочники.Номенклатура.Выбрать(,,,"Код"); все равно не работает | |||
| 46
    
        vovus 21.04.14✎ 10:09 | 
        )) а на что расчитывал? добавь так "Код Убыв", будет поприкольнее     | |||
| 47
    
        Triton_11 21.04.14✎ 10:12 | 
        (46) не упорядочивает все равно
 не работает | |||
| 48
    
        Triton_11 21.04.14✎ 10:33 | 
        (38) не работает     | |||
| 49
    
        vovus 21.04.14✎ 10:35 | 
        а как надо упорядочить-то?     | |||
| 50
    
        Triton_11 21.04.14✎ 10:37 | 
        (49) надо  например:
 было: 001 003 005 007 010 077 чтоб стало: 001 002 003 004 005 006 и чтобы по коду упрядочилась | |||
| 51
    
        vovus 21.04.14✎ 10:39 | 
        а что не работает? коды те же остаются что ли?     | |||
| 52
    
        Acturus 21.04.14✎ 10:42 | 
        Процедура ДобавитьПрефиксНаСервере() Экспорт
 Спр=Справочники.Номенклатура.Выбрать("код"); Флаг=0; Пока Спр.Следующий() Цикл Флаг=Флаг+1; СтрСпр=Спр.ПолучитьОбъект(); СтрСпр.ОбменДанными.Загрузка=Истина; СтрСпр.Код=Формат(Флаг,"ЧЦ="+Метаданные.Справочники.Номенклатура.ДлинаКода+"; ЧВН=; ЧГ="); СтрСпр.Записать(); КонецЦикла КонецПроцедуры Так попробуй | |||
| 53
    
        Triton_11 21.04.14✎ 10:43 | 
        у меня номенклатура разделена по группам он и группы меняет мне этого не надо     | |||
| 54
    
        Triton_11 21.04.14✎ 10:44 | 
        группа одежда 
 и группа продукты | |||
| 55
    
        vovus 21.04.14✎ 10:47 | 
        а, ну в цикл добавь
 Если Спр.ЭтоГруппа Тогда Продолжить; КонецЕсли; | |||
| 56
    
        Triton_11 21.04.14✎ 10:54 | 
        (55) спасибо вродь теперь понял
 а если номенклатура по 2 группам разделена то тогда как быть он раскидывает нумерацию по обойм группам например: гр1: 001 002 005 007 гр2: 003 004 006 008 он все правильно делает т.е. упрядочивает но необхадимо чтоб делал гр1: 001 002 003 004 гр2: 005 006 007 008 и он нули что то убрал те сделал так: гр1: БР1 БР2 БР5 БР7 гр2: БР3 БР4 БР6 БР8 | |||
| 57
    
        vovus 21.04.14✎ 11:04 | 
        Запросом тогда проще выбрать и там уже упорядочить как надо     | |||
| 58
    
        Triton_11 21.04.14✎ 11:05 | 
        (57) без запроса никак     | |||
| 59
    
        sdfqwe 21.04.14✎ 11:06 | 
        Чем задача проще тем... Длиннее список комментов в мисте.     | |||
| 60
    
        vovus 21.04.14✎ 11:15 | 
        (58) может, можно через параметры метода "выбрать", почитай про него еще в СП     | |||
| 61
    
        Triton_11 21.04.14✎ 11:16 | 
        (57) а запросом тогда как можно примерно вот так:
 Процедура ОсновныеДействияФормыУпорядовочивание(Кнопка) Префикс = "KZ"; Спр = Справочники.Номенклатура.Выбрать(,,,"Код Возр"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код КАК Код, | Номенклатура.Ссылка КАК Ном |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Код"; Результат = Запрос.Выполнить().Выбрать(); Сч=0; Пока Результат.Следующий() Цикл Если Спр.ЭтоГруппа Тогда Продолжить; КонецЕсли; Сч=Сч+1; ТекСпр=Спр.ПолучитьОбъект(); ТекСпр.ОбменДанными.Загрузка=Истина; ТекСпр.Код=Префикс+Формат(Сч,"ЧЦ=4;ЧГ="); ТекСпр.Записать(); КонецЦикла; КонецПроцедуры | |||
| 62
    
        vovus 21.04.14✎ 11:22 | 
        после УПОРЯДОЧИТЬ ПО добавь ЭтоГруппа, Родитель, а потом уже Код     | |||
| 63
    
        vovus 21.04.14✎ 11:23 | 
        ЭтоГруппа Убыв     | |||
| 64
    
        Triton_11 21.04.14✎ 11:59 | 
        (57) vovus напиши программно как можно это реализовать через запрос     | |||
| 65
    
        Triton_11 21.04.14✎ 12:32 | 
        up     | |||
| 66
    
        vovus 21.04.14✎ 12:52 | 
        |УПОРЯДОЧИТЬ ПО
 | ЭтоГруппа УБЫВ,Родитель,Код"; | |||
| 67
    
        Triton_11 21.04.14✎ 13:07 | 
        (66) можешь написать весь код я че то не догоняю как можно изменить в запросе     | |||
| 68
    
        vovus 21.04.14✎ 13:10 | 
        а что именно не догоняешь? единственное изменение - в упорядочить по     | |||
| 69
    
        Triton_11 21.04.14✎ 13:18 | 
        (68)
 Процедура ОсновныеДействияФормыУпорядовочивание(Кнопка) Префикс = "KZ"; Спр = Справочники.Номенклатура.Выбрать(,,,"Код Возр"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код КАК Код, | Номенклатура.Ссылка КАК Ном |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Код"; Результат = Запрос.Выполнить().Выбрать(); Сч=0; Пока Результат.Следующий() Цикл Если Спр.ЭтоГруппа Тогда Продолжить; КонецЕсли; Сч=Сч+1; ТекСпр=Спр.ПолучитьОбъект(); ТекСпр.ОбменДанными.Загрузка=Истина; Результат.Код=Префикс+Формат(Сч,"ЧЦ=4;ЧГ="); вот здесь как можно в запросе че то изменить ТекСпр.Записать(); КонецЦикла; КонецПроцедуры или Процедура ОсновныеДействияФормыУпорядовочивание(Кнопка) Префикс = "KZ"; Спр = Справочники.Номенклатура.Выбрать(,,,"Код Возр"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код КАК Код, | Номенклатура.Ссылка КАК Ном |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Код"; Результат = Запрос.Выполнить().Выбрать(); Сч=0; Пока Результат.Следующий() Цикл Если Спр.ЭтоГруппа Тогда Продолжить; КонецЕсли; Сч=Сч+1; ТекСпр=Спр.ПолучитьОбъект(); ТекСпр.ОбменДанными.Загрузка=Истина; ТекСпр.Код=Результат.код; он ругается что код не уникален ТекСпр.Записать(); КонецЦикла; КонецПроцедуры я вот что не догоняю как можно с помошью этого запроса изменить сам справочник как это делается из-за этого я те попросил весь код мне написать как можно эту задачу решить с помошью запроса | |||
| 70
    
        vovus 21.04.14✎ 13:32 | 
        Вот в первом запросе все ок, только поправь строчку:
 |УПОРЯДОЧИТЬ ПО | ЭтоГруппа УБЫВ,Родитель,Код"; и убери вот это: Если Спр.ЭтоГруппа Тогда Продолжить; КонецЕсли; и еще вот здесь поправь: Результат.Код=Префикс+Формат(Сч,"ЧЦ=4;ЧГ=;ЧВН="); ну и убери эту строчку: Спр = Справочники.Номенклатура.Выбрать(,,,"Код Возр"); - это уже не нужно | |||
| 71
    
        Triton_11 21.04.14✎ 13:40 | 
        вот:
 Процедура ОсновныеДействияФормыДействие(Кнопка) Префикс = "KZ"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Код КАК Код, | Номенклатура.Ссылка КАК Ном |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Номенклатура.ЭтоГруппа УБЫВ, | Номенклатура.Родитель, | Код"; Результат = Запрос.Выполнить().Выбрать(); Сч=0; Пока Результат.Следующий() Цикл Сч=Сч+1; Результат.Код=Префикс+Формат(Сч,"ЧЦ=4;ЧГ=;ЧВН="); КонецЦикла; КонецПроцедуры ошибка: {Форма.Форма.Форма(45)}: Поле объекта недоступно для записи (Код) Результат.Код=Префикс+Формат(Сч,"ЧЦ=4;ЧГ=;ЧВН="); | |||
| 72
    
        vovus 21.04.14✎ 13:54 | 
        :) в отпуск или поспать, потом снова за код     | |||
| 73
    
        vovus 21.04.14✎ 13:55 | 
        потом читай (69) -> (70)     | |||
| 74
    
        Triton_11 21.04.14✎ 13:56 | 
        (72) vovus спасибо большое я решил эту задачу она принята 
 так что насчет этого (71) можно не замарачиваться | |||
| 75
    
        Godofsin 21.04.14✎ 13:59 | 
        (36) +1     | |||
| 76
    
        viramen 21.04.14✎ 14:13 | 
        (0) Есть специальная обработка, вроде, универсальный подбор называется     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |