Здравствуйте. В моей доработанной под себя конфигурации в справочнике Номенклатура я ввел новый реквизит КЗП - коэфициент зарплаты для работников. Этот коэфициент используется в РасходнойНакладной для подсчета зарплаты конкретному сотруднику от каждой позиции табличной части. То есть, каждая позиция имеет свой установленный КЗП, который затем умножается на значение товара или услуги. И получается часть, которая заработанная работником по данной позиции.
Все работало и считало хорошо. Но затем встал вопрос изменения коэфициентов по ряду позиций. И, чтобы при этом не менялись результаты в отчетах за прошлые месяцы, я решил сделать этот реквизит периодическим. Зашел в конфигураторе в справочник и поставил галочку в свойствах реквизита КЗП на вкладке Дополнительные "Периодический".
После этого программа умножать сумму конкретной позиции на конкретный КЗП перестала. В ячейке, где должен быть результат, даже не ноль, а просто пустая ячейка. Я уже и галочку "Изменяется документами" ставил, и "ручное изменение" убирал - не работает. А как только убираю галочку "Периодический" - сразу начинает считать. Что я не так делаю? Как правильно сделать периодическим реквизит?
периодический реквизит надо получать на дату. Позтому везде, где он встречается необходимо внести изменения для корректной работы программы.
Пример получения периодического реквизита "Цена" для номенклатуры:
УчЦена = Запр.ТМЦ.УчетнаяЦена.Получить(ДатаПо);
denis84 @ Сегодня, 9:19
,
Недостаточно информации для понимания. Если можно, приведите, пожалуйста, конкретный пример с более подробным описанием, или дайте ссылку, где почитать. В гугле ничего толкового не нашел. Спасибо.
1. що означає відмітка "Изменяется документами"- Це означає що значення періодичного реквізиту справочника можна міняти тільки документом (в ОбработкаПроведения() ). Коди документ помічається на видалення або робиться непроведеним, то автоматично значення цього реквізиту пропадає (яке привязане до даного документа)
2. Якшо ще поставити "Ручне Изменение" тоді значення періодичного реквізиту можна міняти з любого місця прогами. Але при видаленні документа воно автоматично не пропаде.
Для установки значення документом слід писати так:
УстановитьРеквизитСправочника(Спр.ТекущийЭлемент(),"НазваниеПереодическогоРеквизита","Запишем тут значение реквизита",ДатаДок);
Спр.ТекущийЭлемент().ПерРеквизит.Установить(ТекущаяДата(),"НужноеЗ значение");
ЗначениеРеквизитаНадату=Спр.ТекущийЭлемент().ПерРеквизит.Получить(НужнаяДата)
Спр=СоздатьОбъект("Справочник.Контрагенты");
Спр.ИспользоватьДату(ТекущаяДата());
... СПРНайтиСправочник
Спр.ПериодическийРеквизит=""Его значение"
Спр.Записать()
volodya1122 @ Сегодня, 18:32
,
Чесно скажу, не ясно. Де і що писати. В мене в довіднику Номенклатура є реквізит КЗП з форматом число . Наприклад, 0.115.
Значення цього реквізиту я записую в довідник вручну. І далі це число використовується в програмі для обчислень.
Потім я вручну міняю це число. І мені потрібно, щоб при обчисленні даних в звітах по тих документах, що були раніше, використовувалось старе значення реквізиту, а в документах після його зміни - нове значення. Конкретно, що прописати в довіднику і де. І чи треба щось прописувати в документах, де воно використовується, крім його ідентифікатора. Дякую.
ZUBR @ Вчера, 23:00
,
Устанавливайте КЗП на дату например 01/01/20 = 0,115. Дальше например на 01/02/20 =0,2. А в отчетах(документах) получаете на нужную Вам дату значение этого "КЗП". Для каждого нового значения "КЗП" указываете новую дату, не в коем случае не изменяете старую дату, т.к. потеряете старые значения. Теперь понятно?
ZUBR @ Вчера, 23:00
,
Наскільки я зрозумів в довіднику Номенклатура реквізит КЗП записується тільки вручну. Ніякими документами він не міняється і небуде мінятись документами.
Тоді процес спрощується, Але роботи всеодно буде потрібно багато.
1. В довіднику поставити признак ПеріодичнийРеквізит. ИзменениеДокументом не ставити.
2. Зберегти конфігурацію і зайти в Предприятие. Перше значення періодичного реквізита повинно встановитись автоматично на дату наприклад 1 січня 1980 року. Це добре. (перевірити: права кнопка на номенклатурі-> Історія реквізиту). Якщо так поставилсь тоді все добре.
3. В довіднику контрагенти в процедурі ПриОткрытии прописати це (якщо його там немає);
СохранениеПериодическихРеквизитов(2, "*");
ИспользоватьДату(ТекущаяДата()); // періодичні реквізити будут завжди записуватись на сьогодні
//або ИспользоватьДату(РабочаяДата());// періодичні реквізити будуть записуватись на робочу дату (робочу дату можна міняти в (сервіс-Параметри-Общие)
знач=Спр.КЗП: // було так
знач=Спр.КЗП.Получить(НужнаяДата): // змініти на це
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua