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