|
Регистр Сведений Штрихкоды | ☑ | ||
---|---|---|---|---|
0
pavelul73
17.10.12
✎
11:31
|
Добрый день. Собственно, есть РС Штрихкоды - заполненный.
Есть xls файл с штрих кодами. Получаю штри код из файла, делаю проверку, если текущий шк не равен шк из файла, тогда меняю этот шк. Пишу вот такой код: ТекШК = РегистрыСведений.Штрихкоды; ОтборШК = Новый Структура("Штрихкод"); ОтборШК.Штрихкод = СтарыйШК; ВыборкаШК = ТекШК.Выбрать(ОтборШК); Но при выполнении метода выбрать, останавливается с ошибкой, не верный параметр 1. Подскажите, что я делаю не так? |
|||
1
pavelul73
17.10.12
✎
11:32
|
регистр непериодический
|
|||
2
Галахад
гуру
17.10.12
✎
11:35
|
Делай запросом.
|
|||
3
ammpryanik
17.10.12
✎
11:38
|
это даж я знаю
|
|||
4
zoom_4x
17.10.12
✎
11:39
|
В качестве полей для отбора могут задаваться измерения или реквизиты, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или установлен признак "Ведущее".
|
|||
5
pavelul73
17.10.12
✎
11:41
|
(4) Спасибо, не дочитал СП.
(2)запрос понятно, а как запросом получить менеджер записи? Т.е как после запроса изменить текущий ШК? |
|||
6
kimarle
17.10.12
✎
11:44
|
(5) Создать набор записей, установить отбор, добавить новую строку в набор записей, записать набор записей.
|
|||
7
pavelul73
17.10.12
✎
11:47
|
(6) если я создам набор записей, разве он не добавит еще один шк к уже существующему? По-моему он не изменить текущий, а добавит еще один. Или я ошибаюсь?
|
|||
8
PLUT
17.10.12
✎
11:50
|
(7) на эти грабли должен наступить каждый! желательно на рабочей базе
|
|||
9
pavelul73
17.10.12
✎
11:51
|
(8) кто же на рабочей делает, если есть тестовая? ))
|
|||
10
Галахад
гуру
17.10.12
✎
11:52
|
МенеджерЗаписи = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
МенеджерЗаписи.ШтрихКод = Выборка.ШтрихКод; МенеджерЗаписи.Прочитать(); МенеджерЗаписи.ШтрихКод = ШтрихКод; МенеджерЗаписи.Записать(); |
|||
11
pavelul73
17.10.12
✎
12:05
|
(10) не записывает
|
|||
12
pavelul73
17.10.12
✎
12:22
|
нет больше идей?
|
|||
13
Торин
17.10.12
✎
12:29
|
Потрясающая логика программирования...
"если текущий шк не равен шк из файла, тогда меняю этот шк" что значит "текущий шк"? Это штрих-код чего? номенклатуры? Какова структура регистра "штрихкоды"? если я правильно понимаю, "штрихкод" - это ресурс. А измерения у него какие? |
|||
14
kimarle
17.10.12
✎
12:31
|
|
|||
15
pavelul73
17.10.12
✎
12:32
|
(13)ТекущийШК = штрих код номенклатуры
Структура РС ШтрихКоды - стандартная, УТ 10.3 ШК -Измерение |
|||
16
Торин
17.10.12
✎
12:35
|
почти правильно
тока не Набор.Записать(); а Набор.прочитать(); и не надо добавлять запись. надо исправить имеющуюся как то так если Набор.количество() > 0 тогда для каждого запись из Набор Цикл запись.ШтрихКод = ТекШК; конеццикла набор.записать(); вот как-то так |
|||
17
Торин
17.10.12
✎
12:35
|
Если ТекШК <> СтарыйШК Тогда
Набор = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); Набор.Отбор.Владелец.Установить(ТекНоменклатура); Набор.прочитать(); если Набор.количество() > 0 тогда НоваяЗапись = Набор.Добавить(); НоваяЗапись.Номенклатура = ТекНоменклатура; НоваяЗапись.ШтрихКод = ТекШК; Набор.Записать(); КонецЕсли; |
|||
18
Торин
17.10.12
✎
12:37
|
вот итог который точно будет работать:
Если ТекШК <> СтарыйШК Тогда Набор = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); Набор.Отбор.Владелец.Установить(ТекНоменклатура); Набор.прочитать(); если Набор.количество() > 0 тогда для каждого запись из Набор Цикл запись.ШтрихКод = ТекШК; конеццикла Иначе НоваяЗапись = Набор.Добавить(); НоваяЗапись.Номенклатура = ТекНоменклатура; НоваяЗапись.ШтрихКод = ТекШК; КонецЕсли; Набор.Записать(); |
|||
19
kimarle
17.10.12
✎
12:38
|
(11) Потому что нет отбора по владельцу/номенклатуре. Все равно старый штрихкод придется вытаскивать запросом.
|
|||
20
Торин
17.10.12
✎
12:38
|
(17) это яначал писать и нечаянно нажал отправить
|
|||
21
pavelul73
17.10.12
✎
12:41
|
Огромное спасибо! Работает!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |