Вход | Регистрация


Изменение записи в регистре сведений Цены Номенклатуры

Изменение записи в регистре сведений Цены Номенклатуры
Я
   falselight
 
20.03.18 - 15:23
Конфигурация Комплексная автоматизация 2.4.2.115.
В процедуру на сервере передаю Значение которое нужно
изменить в поле Вес и другие строки измерений регистра.
Менять нужно на текущую дату.
Подскажите пожалуйста по коду как правильно сделать?

Регистр подчинен регистратору. Периодичность в пределах секунды.
Измерения - Номенклатура, Характеристика, ВидЦены
Ресурсы - Цена, Упаковка, Валюта.

Данные Вес взяты из поля Числитель, ресурса упаковка, изменены
и их нужно обновить в регистре. Как тут будет правильнее сделать?
 
 
   falselight
 
1 - 20.03.18 - 15:31
Получается Регистратор и период так же с собой таскать нужно?
Что бы потом по нему же и другим данным изменять
значения? При установке отбора, так же?
   Ц_У
 
2 - 20.03.18 - 15:33
(0) цель конечная какая?
   VitShvets
 
3 - 20.03.18 - 15:39
Т.к. регистр подчинен регистратору, то изменить что-то в регистре можно только документом. Т.е. 2 выхода:
1. Кривой вариант. Каким-то образом находить подходящий регистратор, например последний и править его движения.
2. Более правильный вариант. Добавлять новый документ с правильными данными, проводить его.
   falselight
 
4 - 20.03.18 - 15:46
(2) (3)
Задача в создании обработки.
Которая заполняет тч данными из регистра.
Меняться могут 3 поля Вес1шт, ВесПогонногоМетра и Длина.

Эти данные изначально берутся из регистра сведений, как
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Числитель, 0) КАК Вес1Шт,
    ЦеныНоменклатурыСрезПоследних.Номенклатура.ДлинаЗнаменатель КАК ВесПогонногоМетра,
    ЦеныНоменклатурыСрезПоследних.Номенклатура.ДлинаЧислитель КАК Длина,
   falselight
 
5 - 20.03.18 - 15:48
При смене этих полей они должны обновляться в регистре.
Но видите это не просто измерения регистра.
Это реквизиты справочников.
Я не совсем ещё увидел решение вопроса.
Думаю где обновлять то их значения при изменении в полях табличной части обработки?
   Temai
 
6 - 20.03.18 - 15:51
(5) При изменении табчасти нужно создавать документ и проводить. ИМХО
   falselight
 
7 - 20.03.18 - 15:56
(6) Странно тогда в документ и били бы. Или как то
по другому ставился функционал обработки.
Тут нужно менять именно данные.
Если они берутся из элементов справочников что в регистре.
То получается менять нужно их в этих элементах, так ведь?
Регистр получатся не трогается?
   VitShvets
 
8 - 20.03.18 - 15:59
(7) Если задача обработки исправлять Вес1Шт, весПМ и длину, то регистр и правда здесь не при чем. Нужно получать объекты "Упаковка" и "Номенклатура", править там значения Числитель, ДлинаЗнаменатель и ДлинаЧислитель, записывать.
   falselight
 
9 - 20.03.18 - 16:01
(8) Да получается так. Это верное решение!!!!
Я тоже так его понял. А то начал в регистре что то менять добавлять.
В таком случае и документ не затрагивается.
   falselight
 
10 - 20.03.18 - 16:38
Почему могут не сохраняться значения?
Загружаю данные в тч обработки. Меняю значение в поле.
По коду оно устанавливается у номенклатуры.
Смотрю код справочника, такой же всегда.
Но снова заполняю тч обработки там пусто.
И все по новой. Ставишь новое значение. оно записывается.
Но потом при загрузки в тч его уже нет.

///

&НаСервере
Процедура НоменклатураСРеквизитамиВесПогонногоМетраПриИзмененииНаСервере(ВесПогонногоМетра, Номенклатура)
    // СПРАВОЧНИК *НОМЕНКЛАТУРА* .ДлинаЗнаменатель 

    Запрос       = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Номенклатура.Ссылка           КАК Ссылка,
        |    Номенклатура.ДлинаЗнаменатель КАК ДлинаЗнаменатель 
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.Ссылка = &Номенклатура";
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
        Выборка = Рез.Выбрать();
        Выборка.Следующий();
        ЭлемСпр                   = Выборка.Ссылка.ПолучитьОбъект();
        ЭлемСпр.ДлинаЗнаменатель  = ВесПогонногоМетра;
        ЭлемСпр.Записать();
    КонецЕсли;
КонецПроцедуры
//

&НаКлиенте
Процедура НоменклатураСРеквизитамиВесПогонногоМетраПриИзменении(Элемент)
    НоменклатураСРеквизитамиВесПогонногоМетраПриИзмененииНаСервере(ЭтаФорма.Элементы.НоменклатураСРеквизитами.ТекущиеДанные.ВесПогонногоМетра, ЭтаФорма.Элементы.НоменклатураСРеквизитами.ТекущиеДанные.Номенклатура);
КонецПроцедуры
 
 Рекламное место пустует
   falselight
 
11 - 20.03.18 - 16:42
Посмотрел, значение устанавливается но пропадает после вот этой строки, - 


ЭлемСпр.Записать();


Почему?
   falselight
 
12 - 20.03.18 - 16:43
На этой строке, в справочнике номенклатура пропадает, -

Справочники.Номенклатура.ОтработатьЛогикуСвязиРеквизитов(ЭтотОбъект);


Как быть?
   VitShvets
 
13 - 20.03.18 - 16:46
(12) Попробуй 
ЭлемСпр.ОбменДанными.Загрузка = Истина;

А вообще, если по феншуй, нужно смотреть логику модуля объекта "ПередЗаписью" и прочее.
   falselight
 
14 - 20.03.18 - 16:52
(13) Да согласен. Это демо база.
Я нашел место где обнуляет.
Там не сходятся меры номенклатуры.
Разматывать нужно все это, но суть почему понял.
Сама настройка номенклатуры не позволяет задавать такие значения.
   falselight
 
15 - 20.03.18 - 16:55
(13) Да ваш метод сработал, благодарю.
   Fram
 
16 - 21.03.18 - 01:12
(8) судя по названию этих реквизитов, после первичного ввода я бы не стал их менять. мало того я бы даже запретил их менять, если это разрешено
   VitShvets
 
17 - 21.03.18 - 13:44
(16) У нас, к примеру, закрыты к изменению ВГХ. Бывают случаи когда надо поменять - перепутали размерность, ввели граммы вместо килограммов. Бывает поставщик присылает не корректные данные. Это конечно не массовое явление, но бывает. В любом случае надо отталкиваться от бизнес-логики, а в данном топике сие не обговаривается, можно только гадать.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует