Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
05 Июн 2020, 06:17
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Настройка реквизитов ПЕРИОД  (Прочитано 304 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн НикаК

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-20
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день! Новичок!)Совсем новичок в 1С!))

1с:Предприятие 8.3(8.3.16.1063). КОРП редакция 2.1

На форме внутреннего документа "Финансы" есть реквизиты тип Дата - "Период выплаты с"
"Период выплаты По"
"Конкретная дата выплаты"
"Разница между план/факт" тип Строка.

Помогите пожалуйста заполнить реквизиты и понять где это вообще прописывается) Если я правильно понимаю то это должно быть в Процедуре При Изменении Элементов Форм? или нет?))

"Период выплаты по" - заполняется автоматически, т.е. + 10 дней от даты "Период выплаты с".
Реквизит "Разница между план/факт" = "Конкретная дата выплаты" - (минус) "Период выплаты с".




таким образом добавила реквизиты:
Функция ПолучитьНастройкиЭлементовРеквизитов_ВнутренниеДокументы(Форма, ВидДокумента
 
 Элементы = Форма.Элементы;
 
 ДобавляемыеРеквизиты = Новый Массив;

  Если ФД_РаботаСПредопределеннымиПризнаками.ЭлементуЗаданПризнак(ВидДокумента, 
  ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ФД_ПредопределенныеЭлементы.Финансы")) Тогда
 
 ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1 = Элементы.Добавить("ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1",
 Тип("ГруппаФормы"), Элементы.ГруппаОрганизация);
 ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1.Вид = ВидГруппыФормы.ОбычнаяГруппа;
 ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
 ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1.ОтображатьЗаголовок = Ложь;
 ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1.СквозноеВыравнивание = СквозноеВыравнивание.Использовать;
 
 ДобавляемыеРеквизиты.Добавить(СтруктураНастроекЭлементаРеквизита_ВнутренниеДокументы("ПериодВыплатыС", Элементы.Найти("ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1")));
 ДобавляемыеРеквизиты.Добавить(СтруктураНастроекЭлементаРеквизита_ВнутренниеДокументы("ПериодВыплатыПо", Элементы.Найти("ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1")));
    ДобавляемыеРеквизиты.Добавить(СтруктураНастроекЭлементаРеквизита_ВнутренниеДокументы("КонкретнаяДатаВыплаты", Элементы.Найти("ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1")));
 ДобавляемыеРеквизиты.Добавить(СтруктураНастроекЭлементаРеквизита_ВнутренниеДокументы("РазницаМеждуПланФакт", Элементы.Найти("ФД_ГруппаВнутренниеДокументы_ДополнениеФорм_1")))     
 
 КонецЕсли;






Функция СтруктураНастроекЭлементаРеквизита_ВнутренниеДокументы(ИмяОбъекта, Родитель = Неопределено)
СтруктураДанных = СтруктураНастроекЭлементаРеквизита();
МассивДействийЭлемента = Новый Массив;
МассивДействийЭлемента.Добавить(Новый Структура("ОбработчикСобытия,ИмяПроцедуры", "ПриИзменении","Подключаемый_ПриИзмененииПрограммноСозданногоЭлемента"));

ИначеЕсли ИмяОбъекта = "ПериодВыплатыС" Тогда
 СтруктураДанных = ЗаполнитьСтруктуруРеквизита(СтруктураДанных, Ложь, Истина, "Объект.ПериодВыплатыС", "ПериодВыплатыС", "Период выплаты С", Родитель,
 Неопределено, Ложь, , "", "", "", Истина, Ложь, МассивДействийЭлемента,,,, "Период выплаты С",,,,, Истина);
 
ИначеЕсли ИмяОбъекта = "ПериодВыплатыПо" Тогда
 СтруктураДанных = ЗаполнитьСтруктуруРеквизита(СтруктураДанных, Ложь, Истина, "Объект.ПериодВыплатыПо", "ПериодВыплатыПо", "Период выплаты По", Родитель,
 Неопределено, Ложь, , "", "", "", Истина, Ложь, МассивДействийЭлемента,,,, "Период выплаты По",,,,, Истина);
 
ИначеЕсли ИмяОбъекта = "КонкретнаяДатаВыплаты" Тогда
 СтруктураДанных = ЗаполнитьСтруктуруРеквизита(СтруктураДанных, Ложь, Истина, "Объект.КонкретнаяДатаВыплаты", "КонкретнаяДатаВыплаты", "Конкретная дата выплаты", Родитель,
 Неопределено,Ложь,, "", "", "", Истина, Ложь, МассивДействийЭлемента,,,, "Конкретная дата выплаты",,,,, Истина);
 
ИначеЕсли ИмяОбъекта = "РазницаМеждуПланФакт" Тогда
 СтруктураДанных = ЗаполнитьСтруктуруРеквизита(СтруктураДанных, Ложь, Истина, "Объект.РазницаМеждуПланФакт", "РазницаМеждуПланФакт", "Разница между план/факт", Родитель,
 Неопределено, Ложь,, "", "", "", Истина, Ложь, МассивДействийЭлемента,,,, "Разница между план/факт",,,,, Истина);
 
…..

Последний раз редактировалось: НикаК; 20 Май 2020, 14:30


Оффлайн PahaB

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-20
  • Сайт: 
  • Профессия: Программист 1С
Правой кнопкой мыши по элементы, выбираешь свойства, откроется панель свойств и там в самом низу будут события, а там в зависимости от того что тебе надо всё интуитивно понятно будет.

Оффлайн НикаК

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-20
  • Сайт: 
  • Профессия: Ученик 1С
все настройки реквизитов осуществляются в общем модуле на сервере. свойства не используются

Оффлайн PahaB

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-20
  • Сайт: 
  • Профессия: Программист 1С
Элемент.УстановитьДействие("ПриИзменении", Новый Действие("ВыполнитьДействиеПриИзмененииДанных"));
посмотри тут https://forum.infostart.ru/forum9/topic134751/

Оффлайн LexaK

  • *****
  • Сообщений: 2139
  • РЕПУТАЦИЯ: 629
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
НикаК,
у вас в коде уже есть задание обработчика
Цитировать
МассивДействийЭлемента = Новый Массив;
МассивДействийЭлемента.Добавить(Новый Структура("ОбработчикСобытия,ИмяПроцедуры", "ПриИзменении","Подключаемый_ПриИзмененииПрограммноСозданногоЭлемента"));

найдите вот эту процедуру - "Подключаемый_ПриИзмененииПрограммноСозданногоЭлемента"
в ней определите имя добавленного элемента и в зависимости от имени сделайте те или иные действия, например
Цитировать
&НаКлиенте
Процедура Подключаемый_ПриИзмененииПрограммноСозданногоЭлемента(Элемент)
   //считаем что имя элемента совпадает с именем реквизита
   ИмяЭлемента = НРег(Элемент.Имя);
   Если ИмяЭлемента = НРег("ПериодВыплатыС") Тогда
      Объект.ПериодВыплатыПо = Объект.ПериодВыплатыC + 10 * 24 * 3500;//+ 10 дней
   ИначеЕсли ИмяЭлемента = НРег("РазницаМеждуПланФакт") Тогда
      //ваша команда?   
   КонецЕсли;
КонецПроцедуры

Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Оффлайн НикаК

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-20
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо! написала в этом роде) но не выводит автоматически ПериодПо(( и соответственно не пересчитывается при изменении ПериодС...

Оффлайн LexaK

  • *****
  • Сообщений: 2139
  • РЕПУТАЦИЯ: 629
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
НикаК, так включите отладчик, встаньте на входе этой процедуры Подключаемый_ПриИзмененииПрограммноСозданногоЭлемента
ну и дальше по шагам!
(отладчиком-то умеете пользоваться?)
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Оффлайн НикаК

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-20
  • Сайт: 
  • Профессия: Ученик 1С
Учусь)))

Последний раз редактировалось: НикаК; 21 Май 2020, 21:51

Оффлайн LexaK

  • *****
  • Сообщений: 2139
  • РЕПУТАЦИЯ: 629
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
НикаК, если у вас база не очень большая(или сделайте тестовую копию с парой документов), выкладывайте ДТ-шник, так будет проще разобраться
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Оффлайн НикаК

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-05-20
  • Сайт: 
  • Профессия: Ученик 1С
LexaK, не могу выложить((


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
86 Сообщений
LexaK
66 Сообщений
antoneus antoneus
65 Сообщений
alexandr_ll
18 Сообщений
Funt432286
16 Сообщений
Funt Фунтиков
16 Сообщений
aleon1 aleon1
14 Сообщений
Анна Анисимова
13 Сообщений
skaut
12 Сообщений
strelok_stv
12 Сообщений

* Кто онлайн

  • Точка Гостей: 160
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal