Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/55: Рейтинг темы: голосов - 55, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
1
1C 8.x

Как изменить Наименование Номенклатуры?

08.02.2014, 21:31. Показов 9988. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо изменить Наименования Номенклатур в базе. Штрих-код и соответствующее ему Наименование в текстовом файле через ";".
1. Если можно на словах, алгоритм?
2. правильно ли в цикле считал строку файла-->запрос в регистре сведений штрих-код-->
-->по владельцу.код нашел номенклатуру в справочнике Номенклатуры-->изменил Наименование
3. можно ли в цикле делать запрос?
4. если можно, пример запроса, как получить елемент Регистра сведений по конкретному штрих-коду?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2014, 21:31
Ответы с готовыми решениями:

БП 3: как получить счета номенклатуры из регистра "счет учета номенклатуры"?
Добрый день Подскажите как получить счета номенклатуры из регистра "счет учета номенклатуры" ...

1С Розница 2.0.7.6 Как сформированить полное наименование номенклатуры?
Добрый день! 1С Розница 2.0.7.6 Слышала, что есть возможность настройки автоматического...

Вытащить наименование номенклатуры из строки (содержание в проводке)
Случилась бяка. Сторонний человек обновил конфу, снес дописки. В документе ПТиУ, тч услуг пустая,...

Какой тип номенклатуры можно указать для вида номенклатуры?
сдавал экзамен проф УТ 8, попался вопрос: какой тип номенклатуры можно указать для вида...

8
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
08.02.2014, 21:52 2
Изначально все считывается из файла?
Я бы вначале все нужные данные из файла считал в таблицу, затем уже одним запросом доставал данные.

Цитата Сообщение от ВВладимир Посмотреть сообщение
можно ли в цикле делать запрос?
Никто не запрещает. Производительность, правда, падает и на экзамене, говорят, выгоняют на фиг за такое. Т.е. нужно такого избегать стараться.
Цитата Сообщение от ВВладимир Посмотреть сообщение
пример запроса
Что-нить вроде:
1C
1
2
3
4
5
6
   Выбрать
      Рег.Штрихкод 
   Из 
      РегистрСведений.Штрихкоды КАК Рег
   Где
      Рег.Номенклатура = &Номенклатура
Но я не знаю, как это у вас устроено.
1
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
08.02.2014, 22:45  [ТС] 3
Спасибо за ответ.
Задача в том, что бы в двух базах Наименования Номенклатур были идентичны.
Пытаюсь написать обработку, которая имеет две клавиши:
-одна по нажатию создает файл, в котором нужные два поля через ";" ШтрихКод и Наименование-уже сделал, работает.
-вторая по нажатию счититывает построчно файл, по полю ШтрихКод(первое поле из файла) определяет карточку Номенклатуры, открывает ее, подставляет Наименование(второе поле файла) и записывает.
мне бы идею в двух словах, алгоритм.
0
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
08.02.2014, 22:54 4
А эти базы как-то связаны между собой?
По каким критериям вы определяете, что "Стул испанский сапог" в одной базе и "Кресло массажное автоматическое" в другой - по сути одна и та же номенклатура?
1
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
08.02.2014, 23:08  [ТС] 5
Цитата Сообщение от OrkVasya Посмотреть сообщение
А эти базы как-то связаны между собой?
По каким критериям вы определяете, что "Стул испанский сапог" в одной базе и "Кресло массажное автоматическое" в другой - по сути одна и та же номенклатура?
базы не связаны, но товары одни и те же, а критерий-одинаковый штрих-код на упаковке(международный).
0
о_____О
Эксперт 1С
224 / 223 / 37
Регистрация: 19.11.2010
Сообщений: 1,062
08.02.2014, 23:32 6
В таком случае, как вариант сходу, обходите файл в цикле, записываете данные в, например, таблицу значений.
Затем делаете запрос по ШК. Примерно такой:
1C
1
2
3
4
5
6
7
ВЫБРАТЬ
    Штрихкоды.Владелец,
        Штрихкоды.Штрихкод
ИЗ
    РегистрСведений.Штрихкоды КАК Штрихкоды
ГДЕ
    Штрихкоды.Штрихкод В(&Штрихкод)
(запрос в УТ 10.3 сделан)

Устанавливаете параметр:
1C
1
Запрос.УстановитьПараметр("Штрихкод", Таблица.ВыгрузитьКолонку("Штрихкод"));
Дальше можно искать в таблице по файлу строку по штрихкоду, и вот у вас есть элемент для изменения и нужное наименование.
1
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
08.02.2014, 23:58  [ТС] 7
читаю про язык запросов, не пойму, например, что значит
Цитата Сообщение от OrkVasya Посмотреть сообщение
В(&Штрихкод)
а чем хуже, если в цикле считывать строки файла, где в строке 2 поля ШтрихКод и Наименование:
Считал строку,
взял из строки ШтрихКод, нашел в Запросе этот ШтрихКод,
взял из строки Наименование, Запрос.УстановитьПараметр("Наименование", НаименованиеИзТхт)
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
09.02.2014, 22:07 8
Лучший ответ Сообщение было отмечено ВВладимир как решение

Решение

1C
1
2
3
4
ВЫБРАТЬ
....
ГДЕ
    Штрихкоды.Штрихкод В(&Штрихкод)
означает, что выберется только те, у которых Штрихкод совпадает с кем то в толпе &Штрихкод.
Эту толпу в запрос загоняешь методом "УстановитьПараметр":
1C
1
Запрос.УстановитьПараметр("Штрихкод", Таблица.ВыгрузитьКолонку("Штрихкод"));
OrkVasya тебе уже написал, чем хуже цикл: не по фэншую задрачивать проц одним и тем же запросом в цикле, если можно загнав в запрос все ШК из файла сразу вытянуть все позиции которые тебе понадобятся.

Добавлено через 17 минут
ну, а коли принципиально цикл нужен:
1C
1
2
ГДЕ
    Штрихкоды.Штрихкод  = &Штрихкод)
Запрос.УстановитьПараметр("Штрихкод", твой_ШК_из_файла);

Не по теме:

рекомендую с "детства" привыкать НЕ говнокодить, чтоб в будущем не гробить время на оптимизацию своего индусского кода в более-менее серьезных вещах

1
0 / 0 / 0
Регистрация: 28.12.2010
Сообщений: 49
10.02.2014, 11:52  [ТС] 9
wladimir_ui, спасибо за разъяснение. Поскольку торопят, сделал, как смог:
делаю запрос на все штрих-коды,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |   Штрихкоды.Штрихкод КАК Штрихкод,
    |   Номенклатура.Ссылка,
    |   ИнформационныеКарты.Ссылка КАК Ссылка1,
    |   СерийныеНомера.Ссылка КАК Ссылка2
    |ИЗ
    |   РегистрСведений.Штрихкоды КАК Штрихкоды
    |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
    |       ПО Штрихкоды.Владелец = Номенклатура.Ссылка
    |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИнформационныеКарты КАК ИнформационныеКарты
    |       ПО Штрихкоды.Владелец = ИнформационныеКарты.Ссылка
    |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерийныеНомера КАК СерийныеНомера
    |       ПО Штрихкоды.Владелец = СерийныеНомера.Ссылка
    
    |УПОРЯДОЧИТЬ ПО
    |   Штрихкод    
    | ");
затем открываю цикл чтения построчно файл, считав строку, беру из нее штрих-код и ищу его в запросе
1C
1
СсылкаНаТовар = Товары.Найти(ШтрихКод, "Штрихкод");
сравниваю Наименования, если не равны, то исправляю Наименование.
Правда, некоторые штрих-коды не 13 разрядные, имеются пробелы и не находятся, поэтому после запроса еще до цикла считывания строк тупо в цикле обрабатываю:
1C
1
2
3
4
5
    Товары = Запрос.Выполнить().Выгрузить();
        Товар = Неопределено;
    Для Каждого Товар Из Товары Цикл
        Товар.Штрихкод = СокрЛП(Товар.Штрихкод);
    КонецЦикла;
происходит не так уж и долго, при 9 тыс штрих-кодов единицы минут.
Надо бы отфильтровать внутренние штрих-коды, их править нельзя, как его программно считать(префикс в настройках), пока не пойму.

Добавлено через 28 минут
1C
1
ПрефиксШтучногоТовара = СокрЛП(Константы.ПрефиксШтучногоТовара.Получить());
похоже, так получится узнать префикс
0
10.02.2014, 11:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2014, 11:52
Помогаю со студенческими работами здесь

Как сделать НаименованиеПолное = Наименование???
У меня 1С 8.2 Конфигурация УТ 11.0.4.6 Задача: надо во всех товарах справочника Номенклатура...

Как отключить характеристики номенклатуры?
В УТ 11 хочу установить цену номенклатуры. При записи данных с установленной ценой выходит ошибка -...

УТ 10.3. Как добраться до Характеристик номенклатуры
Управление торговлей 10.3. На скрине пронумерованы окошки. В конкретной позиции номенклатуры...

Как узнать количество номенклатуры?
Как в УТ 11 узнать количество номенклатуры? Где оно хранится?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru