Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Не записывается периодический реквизит элемента справочника , Справочник.ТМЦ          
Talkman Подменю пользователя
сообщение 22.11.21, 16:39
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 189
Из: Черкассы
Спасибо сказали: 9 раз
Рейтинг: 9

Добрый день. Впал в ступор, прошу помощи. 1С ПУБ, релиз платформы последний официальный.
Проблема.
Есть Справочник.ТМЦ, у него есть список периодических реквизитов. Один из них АвторДокаУЦ, который ведет учет пользователей, которые меняли учетную цену товара. В процедуре ПриЗаписи() меняется значение реквизита АвторДокаУЦ на нужное значение, проверяю в конфигураторе и с помощью сообщить(АвторДокаУЦ). Высвечивается нужное мне значение. После выполнения процедуры ПриЗаписи() значение в периодический реквизит не записывается. В чем может быть проблема? Перед присвоением значения реквизиту используется метод ИспользоватьДату(). Остальные периодические реквизиты элемента записываюются без проблем...

denis84 Подменю пользователя
сообщение 22.11.21, 16:58
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

Talkman @ Сегодня, 16:39 * ,

Установить(<?>,);
Синтаксис:
Установить(<Дата>,<Значение>)
Назначение:
Установить значение периодического реквизита справочника на заданную дату.
Параметры:
<Дата> - выражение со значением требуемой даты;
<Значение> - выражение, содержащее устанавливаемое значение периодического реквизита справочника.
Замечание:
Метод можно использовать только для периодических реквизитов справочника и если для справочника еще не применялся метод ИспользоватьДату. Метод можно использовать только для объектов-справочников, созданных функцией СоздатьОбъект.

Talkman Подменю пользователя
сообщение 22.11.21, 17:08
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 189
Из: Черкассы
Спасибо сказали: 9 раз
Рейтинг: 9

denis84 @ Сегодня, 16:58 * ,
В элементе справочника используется метод ИспользоватьДату(). В моем случае метод Установить() не применяется, применяется прямое присвоение.
ИспользоватьДату(<?>,);
Синтаксис:
ИспользоватьДату(<Дата>,<УстСразу>)
Назначение:
Установить дату выборки периодических реквизитов справочника.
Возвращает:
Текущее значение используемой даты (на момент до исполнения метода).
Параметры:
<Дата> - значение типа дата.
<УстСразу> - необязательный параметр. Число: если 1, то дата, переданная в качестве параметра, будет установлена уже в текущей выборке; если 0 - то дата, переданная в качестве параметра, будет установлена при следующем открытии выборки. Значение по умолчанию - 0. .
Замечание:
Если к объекту применен метод ИспользоватьДату, то нельзя применять к этому же объекту метод Получить.
Метод нельзя использовать через две точки.

Sharzem Подменю пользователя
сообщение 22.11.21, 19:57
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

Я вніс корективу в своє ж повідомлення.
Друже, 44000000.gif
З 2013 року, ми всі старіємо

Щось забувається...

Щось згадується...

Але в цілому РЕСПЕКТ!!!
Працює і не вмерла 7.7.
Також її тягну (хоча скоріш за все вона мене і тягне, і годує...)

Сообщение отредактировал Sharzem - 22.11.21, 20:06


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Спасибо сказали: Talkman,

Talkman Подменю пользователя
сообщение 23.11.21, 8:16
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 189
Из: Черкассы
Спасибо сказали: 9 раз
Рейтинг: 9

Sharzem @ Вчера, 19:57 * ,
Чесно кажучі вона мене вже дістала та сімка. Доречі, проблема вирішилася за допомогою СоздатьОбъект("Периодический") і додаванням нового запису для АвторДокаАЦ на необхідну дату. Я застопорився в тому, що всі інші періодичні реквізити зберігаються, а цей ні.

denis84 Подменю пользователя
сообщение 23.11.21, 8:23
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

denis84 @ Вчера, 16:58 * ,
У меня была такая задача - необходимо было изменить цену (периодический реквизит) ТМЦ. На форме выбрал группу ТМЦ и значение цен,которая была и которая станет и для всех элементов изменить цену:

//*******************************************
Процедура Сформировать()
СпрТМЦ = СоздатьОбъект("Справочник.ТМЦ");
СпрТМЦ.ИспользоватьРодителя(ВыбТМЦ);
СпрТМЦ.ВыбратьЭлементы();
Пока СпрТМЦ.ПолучитьЭлемент()>0 Цикл
    Если СпрТМЦ.ЭтоГруппа()=0 Тогда
        СпрТМЦ.УчетнаяЦена.Получить(ТекущаяДата());        
                Состояние("Обработано"+СпрТМЦ.Код);
            П = СоздатьОбъект("Периодический");
        П.ИспользоватьОбъект("УчетнаяЦена",СпрТМЦ.ТекущийЭлемент());
        П.ВыбратьЗначения();
        Пока П.ПолучитьЗначение()=1 Цикл
            Цена = СпрТМЦ.УчетнаяЦена.Получить(ДатаРек);
            Если Цена = ЦенаБыло Тогда
                СпрТМЦ.УчетнаяЦена.Установить(ДатаРек,ЦенаСтало);
            КонецЕсли;
            СпрТМЦ.Записать();
        КонецЦикла;
    КонецЕсли;
КонецЦикла;
КонецПроцедуры

Talkman Подменю пользователя
сообщение 23.11.21, 8:47
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 189
Из: Черкассы
Спасибо сказали: 9 раз
Рейтинг: 9

denis84 @ Сегодня, 8:23 * ,
Я может не дописал описание ситуации. Элемент справочника сохранятся должен интерактивно, то есть через форму элемента справочника. С обработками все предельно понятно. Затык был в том, что при сохранении элемента справочника все периодические реквизиты, значения которых менялись, записывались правильно, кроме одного. Я так и не понял, почему АвторДокаУЦ не записывался со всеми другими реквизитами, хотя его значение на последней строчке процедуры ПриЗаписи() было верное. Тип "Периодический" помог, но лично я считаю это костылем. Но работает же, и фиг с ним.

Sharzem Подменю пользователя
сообщение 23.11.21, 18:07
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

Цитата(Talkman @ 23.11.21, 9:47) *
Я так и не понял, почему АвторДокаУЦ не записывался со всеми другими реквизитами

А можна процедуру ПриЗаписи() в студію?
Чесно, я не зрозумів проблеми. Може Ви, маєте на увазі підпорядковані елементи?
Періодичні реквізити так і працюють як Ви вважаєте "костилем".
Як я бачу те, що Ви намагаєтеся подолати:
Варіант 1: Хочете бачити які реквізити довідника змінені Автором (в цьому випадку, потрібен окремий довідик куди писати що мінялося, коли мінялося і ким.)
Варіант 2: Хочете бачити хто останній вніс корективи в довідник (в даному випадку періодичність)
Варіант 3: В темі цієї статті згадуєте різні елементи довідника "АвторДокаУЦ" та "АвторДокаАЦ" можливо випадково наплутали ?

Може варто все розпочати з початку ? Або змиритися з "Но работает же, и фиг с ним", тоді мета досягнута, вибачте що потурбував...


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 4:13
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!