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

Хранилище

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

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



> Не удается реквизит сделать периодическим 1с 7.7 конф 7.7.003          
ZUBR Подменю пользователя
сообщение 27.04.20, 0:01
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 229
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

Здравствуйте. В моей доработанной под себя конфигурации в справочнике Номенклатура я ввел новый реквизит КЗП - коэфициент зарплаты для работников. Этот коэфициент используется в РасходнойНакладной для подсчета зарплаты конкретному сотруднику от каждой позиции табличной части. То есть, каждая позиция имеет свой установленный КЗП, который затем умножается на значение товара или услуги. И получается часть, которая заработанная работником по данной позиции.
Все работало и считало хорошо. Но затем встал вопрос изменения коэфициентов по ряду позиций. И, чтобы при этом не менялись результаты в отчетах за прошлые месяцы, я решил сделать этот реквизит периодическим. Зашел в конфигураторе в справочник и поставил галочку в свойствах реквизита КЗП на вкладке Дополнительные "Периодический".
После этого программа умножать сумму конкретной позиции на конкретный КЗП перестала. В ячейке, где должен быть результат, даже не ноль, а просто пустая ячейка. Я уже и галочку "Изменяется документами" ставил, и "ручное изменение" убирал - не работает. А как только убираю галочку "Периодический" - сразу начинает считать. Что я не так делаю? Как правильно сделать периодическим реквизит?

Pepe Подменю пользователя
сообщение 27.04.20, 7:14
Сообщение #2

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1408
Из: Ужгород
Спасибо сказали: 750 раз
Рейтинг: 221

периодический реквизит надо получать на дату. Позтому везде, где он встречается необходимо внести изменения для корректной работы программы.

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

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 223
Из: Украина
Спасибо сказали: 58 раз
Рейтинг: 58

Пример получения периодического реквизита "Цена" для номенклатуры:
УчЦена = Запр.ТМЦ.УчетнаяЦена.Получить(ДатаПо);


ДатаПо - у меня это реквизит на форме.

А потом уже использовать эту "УчЦена" при дальнейших расчетах. Но как сказали уже выше, Вам необходимо будет везде произвести эти изменения получения Вашего "КЗП"

ZUBR Подменю пользователя
сообщение 27.04.20, 15:48
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 229
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

denis84 @ Сегодня, 9:19 * ,
Недостаточно информации для понимания. Если можно, приведите, пожалуйста, конкретный пример с более подробным описанием, или дайте ссылку, где почитать. В гугле ничего толкового не нашел. Спасибо.

volodya1122 Подменю пользователя
сообщение 27.04.20, 17:32
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 302
Из: Тернопіль
Спасибо сказали: 116 раз
Рейтинг: 118.4

1. що означає відмітка "Изменяется документами"- Це означає що значення періодичного реквізиту справочника можна міняти тільки документом (в ОбработкаПроведения() ). Коди документ помічається на видалення або робиться непроведеним, то автоматично значення цього реквізиту пропадає (яке привязане до даного документа)
2. Якшо ще поставити "Ручне Изменение" тоді значення періодичного реквізиту можна міняти з любого місця прогами. Але при видаленні документа воно автоматично не пропаде.
Для установки значення документом слід писати так:
 УстановитьРеквизитСправочника(Спр.ТекущийЭлемент(),"НазваниеПереодическогоРеквизита","Запишем тут значение реквизита",ДатаДок);

Для ручного встановлення значення потрібно писати:
Спр.ТекущийЭлемент().ПерРеквизит.Установить(ТекущаяДата(),"НужноеЗ значение");


Отримати значення реквізиту
ЗначениеРеквизитаНадату=Спр.ТекущийЭлемент().ПерРеквизит.Получить(НужнаяДата)



А можна ще так:
    Спр=СоздатьОбъект("Справочник.Контрагенты");
    Спр.ИспользоватьДату(ТекущаяДата());
... СПРНайтиСправочник
Спр.ПериодическийРеквизит=""Его значение"
Спр.Записать()


Для Установить і УстановитьРеквизитСправочника Записывать справочник непотрібно (якщо міняються тільки періодичні реквізити).

Думаю щось пояснив, або ще більше запутав. Якщо є питання, то задавайте конкретніше

Ще забув добавити.
При Відмітці "ручне Изменение"в межах дня може бути тільки одне значення періодичного реквізита. Якщо їх буде декілька, то збрежеться те яке останнім змінювалось.
При "изменениеДокументом" на кожен документ буде своє значення періодичного реквізиту (хоч 100500 значень в межах одного дня) . Для отримання значення такого реквізитуможна використовувати не дату, а позицію документу
ЗначениеРеквизитаНадату=Спр.ТекущийЭлемент().ПерРеквизит.Получить(ТекДокумент)

Але є один недолік в періодичних реквізитів. Абсолютно всі періодичні реквізити всіх справочников зберігаються в одній таблиці. І якщо їх буде дуже багато, то ця таблиця дуже швидко розростеться. І ще з цього випливає, що доступ до періодичних реквізитів буде повільнішим, так як фізично 1С повинна опрацювати дві таблиці (таблицю справочника, і таблицю періодичних реквізитів- це два різних файли на диску)

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

ZUBR Подменю пользователя
сообщение 27.04.20, 22:00
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 229
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

volodya1122 @ Сегодня, 18:32 * ,
Чесно скажу, не ясно. Де і що писати. В мене в довіднику Номенклатура є реквізит КЗП з форматом число . Наприклад, 0.115.
Значення цього реквізиту я записую в довідник вручну. І далі це число використовується в програмі для обчислень.
Потім я вручну міняю це число. І мені потрібно, щоб при обчисленні даних в звітах по тих документах, що були раніше, використовувалось старе значення реквізиту, а в документах після його зміни - нове значення. Конкретно, що прописати в довіднику і де. І чи треба щось прописувати в документах, де воно використовується, крім його ідентифікатора. Дякую.

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

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 223
Из: Украина
Спасибо сказали: 58 раз
Рейтинг: 58

ZUBR @ Вчера, 23:00 * ,
Устанавливайте КЗП на дату например 01/01/20 = 0,115. Дальше например на 01/02/20 =0,2. А в отчетах(документах) получаете на нужную Вам дату значение этого "КЗП". Для каждого нового значения "КЗП" указываете новую дату, не в коем случае не изменяете старую дату, т.к. потеряете старые значения. Теперь понятно?


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

volodya1122 Подменю пользователя
сообщение 28.04.20, 8:36
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 302
Из: Тернопіль
Спасибо сказали: 116 раз
Рейтинг: 118.4

ZUBR @ Вчера, 23:00 * ,
Наскільки я зрозумів в довіднику Номенклатура реквізит КЗП записується тільки вручну. Ніякими документами він не міняється і небуде мінятись документами.
Тоді процес спрощується, Але роботи всеодно буде потрібно багато.
1. В довіднику поставити признак ПеріодичнийРеквізит. ИзменениеДокументом не ставити.
2. Зберегти конфігурацію і зайти в Предприятие. Перше значення періодичного реквізита повинно встановитись автоматично на дату наприклад 1 січня 1980 року. Це добре. (перевірити: права кнопка на номенклатурі-> Історія реквізиту). Якщо так поставилсь тоді все добре.
3. В довіднику контрагенти в процедурі ПриОткрытии прописати це (якщо його там немає);
        СохранениеПериодическихРеквизитов(2, "*");
    ИспользоватьДату(ТекущаяДата()); // періодичні реквізити будут завжди записуватись на сьогодні
//або ИспользоватьДату(РабочаяДата());// періодичні реквізити будуть записуватись на робочу дату (робочу дату можна міняти в (сервіс-Параметри-Общие)

При цьому 1С небуде задавати додаткових питань на яку дату записувати реквізити.
4. Тут саме цікаве. Всюди (в документах, в звітах, в макетах (печатних формах)), де використовується ваш реквізит КЗП потрібно замінити
Наприклад :
знач=Спр.КЗП: // було так
знач=Спр.КЗП.Получить(НужнаяДата): // змініти на це


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

ZUBR Подменю пользователя
сообщение 29.04.20, 0:12
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 229
Из: Київ
Спасибо сказали: 5 раз
Рейтинг: 3

volodya1122 @ Вчера, 9:36 * ,
дякую, все вийшло!

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


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

 

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