Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Перенумерация по xls          
mapk Подменю пользователя
сообщение 20.04.15, 20:58
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый вечер, необходимо изменить коды товаров в справочнике. Его перенумеровали и теперь коды не соответствуют товару выгруженному на сайт. Позиций 5к+.
есть xls в котором проставленно соответствие наименования, оригинального кода и нового кода.
Параметры из файла я считываю, а потом не знаю как изменить значение кода у позици. Ибо в этом я нуб
Буду весьма благодарен за помощь.

kosalex Подменю пользователя
сообщение 22.04.15, 8:11
Сообщение #2

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(mapk @ 20.04.15, 21:58) *
Добрый вечер, необходимо изменить коды товаров в справочнике. Его перенумеровали и теперь коды не соответствуют товару выгруженному на сайт. Позиций 5к+.
есть xls в котором проставленно соответствие наименования, оригинального кода и нового кода.
Параметры из файла я считываю, а потом не знаю как изменить значение кода у позици. Ибо в этом я нуб
Буду весьма благодарен за помощь.


Ищите по коду, получаете объект, и меняете код.
//Чтение файла.....................
//.........
//.......................
//.....................


ПоискНоменклатура = Справочники.Номенклатура.НайтиПоКоду("ВашКодИзФайла");

Если НЕ ПоискНоменклатура.Пустая() Тогда
обНоменклатура = ПоискНоменклатура.ПолучитьОбъект();
обНоменклатура.Код = //Нужный вам Код
обНоменклатура.Записать();
КонецЕсли;

miha74 Подменю пользователя
сообщение 22.04.15, 8:18
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 153
Спасибо сказали: 81 раз
Рейтинг: 0

//*******************************************
Процедура Сформировать()
    Перем СпрТМЦ;
    Перем тзДанныеИзЭксель;  
    
    тзДанныеИзЭксель = СоздатьОбъект("ТаблицаЗначений");
    тзДанныеИзЭксель.НоваяКолонка("Код","Число");
    тзДанныеИзЭксель.НоваяКолонка("Наименование","Строка");
    
    //здесь какой-то импорт из док.Эксель, заполняем тз данными
    
    СпрТМЦ = СоздатьОбъект("Справочник.ТМЦ");
    
    //перебираем тз , в цикле ищем ТМЦ в справочнике по наимен.(должно совпадать)
    тзДанныеИзЭксель.ВыбратьСтроки();
    Пока тзДанныеИзЭксель.ПолучитьСтроку() = 1 Цикл
        Если СпрТМЦ.НайтиПоНаименованию(СокрЛП(тзДанныеИзЭксель.Наименование),0,1) = 1 Тогда
            СпрТМЦ.Код = тзДанныеИзЭксель.Код;
            СпрТМЦ.Записать();
        Иначе
            // не найдено такое наименование (где-то несовпадение)
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Еще надо что-то придумать про уникальность кодов, ибо если в базе уже есть какой-либо код у другого ТМЦ - не даст назначить такой же.

mister-x Подменю пользователя
сообщение 22.04.15, 8:39
Сообщение #4

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата(kosalex @ 22.04.15, 8:11) *
Если НЕ ПоискНоменклатура.Пустая() Тогда обНоменклатура = ПоискНоменклатура.ПолучитьОбъект();

в 7.7 таких методів немає wink.gif

Домовик Подменю пользователя
сообщение 22.04.15, 8:51
Сообщение #5

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

в вопросе было указано, что есть старый код и новый. можно искать и по коду.
если таблицу значений упорядочить по старому коду. А справочник обойти перебором.( для условия из таблицы значений брать первую строку, и при совпадении с кодом элемента удалять), то будет перебор справочника без методов НайтиПоНаименованию(), без НайтиПоРеквизиту().
Интересно, что может и не медленнее будет работать.


Но в общем - да. автору вопроса смотреть пост номер 3.



kosalex Подменю пользователя
сообщение 22.04.15, 9:45
Сообщение #6

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(mister-x @ 22.04.15, 9:39) *
в 7.7 таких методів немає wink.gif



Ага, не обратил внимание на категорию smile.gif

volodya1122 Подменю пользователя
сообщение 22.04.15, 11:26
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

СпрТМЦ.Записать();
Это поместить в Попытку.
В Исключении выводить все что не записалось. Тогда будет понятно есть ли, и сколько неуникальных кодов.

Спасибо сказали: miha74,

Домовик Подменю пользователя
сообщение 23.04.15, 8:44
Сообщение #8

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

моптель, мои рассуждение не верные, так как через выборку справочника, код и наименование нельзя менять. разве что загружать в табзнач, упорядочивать.

volodya1122 Подменю пользователя
сообщение 23.04.15, 18:48
Сообщение #9

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(Домовик @ 23.04.15, 9:44) *
моптель, мои рассуждение не верные, так как через выборку справочника, код и наименование нельзя менять. разве что загружать в табзнач, упорядочивать.


Как это нельзя?
А ПорядокКодов и ПорядокНаименований для чего придумали?

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.04.24, 5:50
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!