| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Работа с текстом 1с 8.2 |
| Автор: Materium 22.12.2012, 18:45 |
| Добрый день! Изучаю 1С 8.2 Хочу проставить артикулы во всей номенклатуре. Тип артикула - строка, длина пусть 4. Например: Артикул = "0001" Теперь в цикле значение нужно увеличивать, чтобы получалось "0002"... "0010".....0011" и т.д. и присваивать очередной номенклатуре. Подскажите функцию, которая таким образом работает со строкой. |
| Автор: Materium 23.12.2012, 11:29 |
| Всем большое спасибо за ответы, уже решил сам вот так: &НаСервере Процедура Установка() НовНомер = 0; Результат = Справочники.Номенклатура.Выбрать(); Пока Результат.Следующий() Цикл НовНомер = НовНомер + 1; Рез = Результат.ПолучитьОбъект(); Если Не Рез.ЭтоГруппа Тогда Рез.Артикул = ДополнитьСтроку(НовНомер); Рез.Записать(); КонецЕсли; КонецЦикла; Сообщить("Обработка справочника окончена, Артикулы заполнены!"); КонецПроцедуры &НаСервере Функция ДополнитьСтроку(Знач Парам) Длина=4; Парам = "" + Парам; Добавить = Длина - СтрДлина(Парам); Если Добавить > 0 Тогда Добавок=""; Для Сч = 1 По Добавить Цикл Добавок=Добавок + "0"; КонецЦикла; Возврат Добавок+Парам; Иначе Возврат Парам; КонецЕсли; КонецФункции |
| Автор: VOdesse 9.1.2013, 11:54 |
| Юра Столбовский Вот вам правильный результат: &НаСервере Процедура Установка() НовНомер = 1; Результат = Справочники.Номенклатура.Выбрать(); Пока Результат.Следующий() Цикл Рез = Результат.ПолучитьОбъект(); Если Рез.ЭтоГруппа Тогда Продолжить; КонецЕсли; Рез.Артикул = Формат(НовНомер,"ЧЦ=4; ЧВН=; ЧГ=0"); Рез.Записать(); НовНомер = НовНомер + 1; КонецЦикла; Сообщить(“Обработка справочника окончена, Артикулы заполнены!”); КонецПроцедуры |