Добрый день. Впал в ступор, прошу помощи. 1С ПУБ, релиз платформы последний официальный.
Проблема.
Есть Справочник.ТМЦ, у него есть список периодических реквизитов. Один из них АвторДокаУЦ, который ведет учет пользователей, которые меняли учетную цену товара. В процедуре ПриЗаписи() меняется значение реквизита АвторДокаУЦ на нужное значение, проверяю в конфигураторе и с помощью сообщить(АвторДокаУЦ). Высвечивается нужное мне значение. После выполнения процедуры ПриЗаписи() значение в периодический реквизит не записывается. В чем может быть проблема? Перед присвоением значения реквизиту используется метод ИспользоватьДату(). Остальные периодические реквизиты элемента записываюются без проблем...
Talkman @ Сегодня, 16:39
,
Установить(<?>,);
Синтаксис:
Установить(<Дата>,<Значение>)
Назначение:
Установить значение периодического реквизита справочника на заданную дату.
Параметры:
<Дата> - выражение со значением требуемой даты;
<Значение> - выражение, содержащее устанавливаемое значение периодического реквизита справочника.
Замечание:
Метод можно использовать только для периодических реквизитов справочника и если для справочника еще не применялся метод ИспользоватьДату. Метод можно использовать только для объектов-справочников, созданных функцией СоздатьОбъект.
denis84 @ Сегодня, 16:58
,
В элементе справочника используется метод ИспользоватьДату(). В моем случае метод Установить() не применяется, применяется прямое присвоение.
ИспользоватьДату(<?>,);
Синтаксис:
ИспользоватьДату(<Дата>,<УстСразу>)
Назначение:
Установить дату выборки периодических реквизитов справочника.
Возвращает:
Текущее значение используемой даты (на момент до исполнения метода).
Параметры:
<Дата> - значение типа дата.
<УстСразу> - необязательный параметр. Число: если 1, то дата, переданная в качестве параметра, будет установлена уже в текущей выборке; если 0 - то дата, переданная в качестве параметра, будет установлена при следующем открытии выборки. Значение по умолчанию - 0. .
Замечание:
Если к объекту применен метод ИспользоватьДату, то нельзя применять к этому же объекту метод Получить.
Метод нельзя использовать через две точки.
Я вніс корективу в своє ж повідомлення.
Друже,
https://pro1c.org.ua/index.php?showtopic=12161&hl=
https://pro1c.org.ua/index.php?showtopic=15530&hl=
https://pro1c.org.ua/index.php?showtopic=4798&hl=
Але в цілому РЕСПЕКТ!!!
Працює і не вмерла 7.7.
Також її тягну (хоча скоріш за все вона мене і тягне, і годує...)
Sharzem @ Вчера, 19:57
,
Чесно кажучі вона мене вже дістала та сімка. Доречі, проблема вирішилася за допомогою СоздатьОбъект("Периодический") і додаванням нового запису для АвторДокаАЦ на необхідну дату. Я застопорився в тому, що всі інші періодичні реквізити зберігаються, а цей ні.
denis84 @ Вчера, 16:58
,
У меня была такая задача - необходимо было изменить цену (периодический реквизит) ТМЦ. На форме выбрал группу ТМЦ и значение цен,которая была и которая станет и для всех элементов изменить цену:
//*******************************************
Процедура Сформировать()
СпрТМЦ = СоздатьОбъект("Справочник.ТМЦ");
СпрТМЦ.ИспользоватьРодителя(ВыбТМЦ);
СпрТМЦ.ВыбратьЭлементы();
Пока СпрТМЦ.ПолучитьЭлемент()>0 Цикл
Если СпрТМЦ.ЭтоГруппа()=0 Тогда
СпрТМЦ.УчетнаяЦена.Получить(ТекущаяДата());
Состояние("Обработано"+СпрТМЦ.Код);
П = СоздатьОбъект("Периодический");
П.ИспользоватьОбъект("УчетнаяЦена",СпрТМЦ.ТекущийЭлемент());
П.ВыбратьЗначения();
Пока П.ПолучитьЗначение()=1 Цикл
Цена = СпрТМЦ.УчетнаяЦена.Получить(ДатаРек);
Если Цена = ЦенаБыло Тогда
СпрТМЦ.УчетнаяЦена.Установить(ДатаРек,ЦенаСтало);
КонецЕсли;
СпрТМЦ.Записать();
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
denis84 @ Сегодня, 8:23
,
Я может не дописал описание ситуации. Элемент справочника сохранятся должен интерактивно, то есть через форму элемента справочника. С обработками все предельно понятно. Затык был в том, что при сохранении элемента справочника все периодические реквизиты, значения которых менялись, записывались правильно, кроме одного. Я так и не понял, почему АвторДокаУЦ не записывался со всеми другими реквизитами, хотя его значение на последней строчке процедуры ПриЗаписи() было верное. Тип "Периодический" помог, но лично я считаю это костылем. Но работает же, и фиг с ним.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua