8.х Запись данных в регистр сведений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Serg23KmUa, 20 авг 2012.

  1. TopicStarter Overlay
    Serg23KmUa
    Offline

    Serg23KmUa

    Регистрация:
    28 июн 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте.
    Конфа 8.1 Управление торговлей для Украины.

    Проблема такая:
    Ведется регистр сведений "Штрихкоды", строк там тысячи 3.
    Теперь вот надо все штрихкоды привести к другому виду. Например: было 123456 стало UA123456.
    Новые штрихкоды получили от поставщика в файле.
    Файлик обработкой загрузил, данные прочитал, а вот как новые штрихкоды записать в РС, разобраться не могу.
    Может подскажет кто нибудь.
    Спасибо
  2. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Код:
    НаборЗаписей = РегистрыСведений.ШК.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Измерение1.Установить(ЗначениеИзмерения1);
    НаборЗаписей.Прочитать();
    Для каждого Запись Из НаборЗаписей Цикл
    Запись.ШтрихКод = НовыйШтрихКод;
    КонецЦикла;
    НаборЗаписей.Записать();
    Например копать отсюда.
  3. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Насколько я помню, строка штрихкода хранится в справочнике "Характеристики номенклатуры". Вам там нужно менять. А в в записи регистра сведений - ссылка на элемент оного справочника.
  4. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Пардоньте, фигню я написал :blush: . Менять надо именно в регистре.
  5. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Хорошо что сами себя подправили а то читал и глаза на лоб лезли :D
    Переписывайте регистры, там ничего тяжелого нет если с регистрами умеете работать, раз 100 переписывал эти ШК)
  6. TopicStarter Overlay
    Serg23KmUa
    Offline

    Serg23KmUa

    Регистрация:
    28 июн 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Просто дело в том что я только начинаю с 1с работать, а сделать это надо уже, прям вот уже, сию минуту.
    Если бы вы мне подсказали, был бы вам очень благодарен.
  7. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Про "поправил" это mialord не вам написал, а мне. Стыдно, каюсь... Давно не касался УТ, но специально посмотрел и понял, что сморозил.
    А по поводу как сделать, так uza вам все написал. Создаете НаборЗаписей, устанавливаете отбор по значению Штрихкода, читаете его, меняете старое значение штрихкода на новое и записываете. И так для каждого штрихкода, который нужно изменить.
  8. TopicStarter Overlay
    Serg23KmUa
    Offline

    Serg23KmUa

    Регистрация:
    28 июн 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Подниму тему, т.к не могу никак разобраться.

    Загружаю файл в обработку. Вот код:
    Код:
    xlLastCell = 11;
    ВыбФайл = Новый Файл(ИмяФайла);
    Если НЕ ВыбФайл.Существует() Тогда
    Сообщить("Файл не существует!");
    Возврат Ложь;
    КонецЕсли;
    Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ИмяФайла);
    Состояние("Обработка файла Microsoft Excel...");
    ExcelЛист = Excel.Sheets(НомерЛистаExcel);
    Исключение
    Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
    Возврат ложь;
    КонецПопытки;
    ТабличныйДокумент.Очистить();
    ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
    RowCount = ActiveCell.Row;
    ColumnCount = ActiveCell.Column;
    Для Column = 1 По ColumnCount Цикл
    ТабличныйДокумент.Область("C" + Формат(Column, "ЧГ=")).ШиринаКолонки = ExcelЛист.Columns(Column).ColumnWidth;
    КонецЦикла;
    Для Row = 1 По RowCount Цикл
    Для Column = 1 По ColumnCount Цикл
    ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Text;
    КонецЦикла;
    КонецЦикла;
    Excel.WorkBooks.Close();
    Excel = 0;
    Возврат Истина;
    А как вытянуть из табличного документа новый штрихкод, найти в РС соответствующий ему и заменить, не могу разобраться.
    Очень нужна помощь!
  9. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    В любом случае нужно иметь представление о том какому товару (характеристике, если они включены) соответствует штрихкод.
    Поэтому определитесь по каким критериям будем искать номеклатуру.

Поделиться этой страницей