![]() |
![]() |
![]() |
|
Ввод текущей даты и времени в ячейку табличной части документа на сервере | ☑ | ||
---|---|---|---|---|
0
Sultalin
05.06.20
✎
12:55
|
Хочу сделать так, чтобы в табличной части документа (там присутствуют 3 колонки с реквезитами (ДатаНачала,ДатаЗавершения,ДатаПроверки) при срабатывании события ПриИзменении, в выбранную ячейку(где я добавил кнопку Очистить для простоты) автоматически прописывалась текущая дата и время. (Мне пришлось это все делать для дипломной работы, но так как у меня менеджмент(управление) программирования особо не было и в результате познания по 1с у меня слабые) Подскажите какой тип данных сделать у этих реквизитов и как через форму изменять данные выбранной ячейки на сервере.
(то что пока есть) &НаСервере Процедура НаименованиеПриИзмененииНаСервере() Объект.Децимальное = Объект.Наименование.Децимальное_обозначение; КонецПроцедуры &НаКлиенте Процедура НаименованиеПриИзменении(Элемент) НаименованиеПриИзмененииНаСервере(); КонецПроцедуры &НаСервере Процедура ЗаполнитьНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 40 |Децимальные_обозначенияОперации.НомерСтроки КАК Номер, |Децимальные_обозначенияОперации.Операции КАК Операции, |Децимальные_обозначенияОперации.Участок КАК Участок |{ВЫБРАТЬ |Операции, |Операции, |Участок.*} |ИЗ |Справочник.Децимальные_обозначения.Операции КАК Децимальные_обозначенияОперации |ГДЕ |Децимальные_обозначенияОперации.Ссылка.Децимальное_обозначение =Децимальное_обозначение | |ДЛЯ ИЗМЕНЕНИЯ"; Запрос.УстановитьПараметр("Децимальное_обозначение",Объект.Децимальное); Результат = Запрос.Выполнить(); Объект.Таблица.Загрузить(Результат.Выгрузить()); КонецПроцедуры &НаКлиенте Процедура Заполнить(Команда) ЗаполнитьНаСервере(); КонецПроцедуры &НаСервере Процедура ДатаПриИзмененииНаСервере() Объект.Дата = ПолучитьОперативнуюОтметкуВремени(); КонецПроцедуры |
|||
1
Kassern
06.06.20
✎
11:12
|
(0) Если нужно, чтобы при изменении любой строки табличной части, заполнялись колонки с датами в текущей строке, то можете написать следующее. Не забудьте данную процедуру привязать к событиям табличной части.
&НаКлиенте Процедура ВашаТаблицаПриИзменении(Элемент) ТекДанные=Элемент.ТекущиеДанные; ТекДанные.ДатаНачала=ТекущаяДата(); ТекДанные.ДатаЗавершения=ТекущаяДата(); ТекДанные.ДатаПроверки=ТекущаяДата(); КонецПроцедуры |
|||
2
Sultalin
06.06.20
✎
15:41
|
При использовании этого события у меня выдает ошибку
Документ.Сопроводительный.Форма.ФормаДокумента.Форма(57)}: Поле объекта не обнаружено (ТекущиеДанные) ТекДанные=Элемент.ТекущиеДанные; Мне кажется, что мне нужно определить индекс строки текущей выбранной ячейки и передавать ее на сервер для изменения данных в нужной мне ячейке. (мне нужно чтобы я "например нажал кнопку "очистить" в первой (или второй) строке колонки "Дата начала"" и в выбранную ячейку(этой строке этой колонки) вписалось текущее время и дата). Похоже что при создании таблицы в документе я заполняю данные на серверы и поэтому при работе с процедурами которые чисто &клиент у меня проблема поскольку не определяется место в котором я хочу провести изменение. С обычным реквизитом с датой у меня не было проблемы, но с табличной частью беда... |
|||
3
Kassern
06.06.20
✎
15:47
|
(2) А что у вас в отладке пишет в параметре "Элемент" в данной процедуре?
|
|||
4
Kassern
06.06.20
✎
15:49
|
(2) я скинул рабочий код привязанный к событию табличной части "ПриИзменении". Дата это простой тип, его можно на клиенте заполнять, зачем вам сервер...
|
|||
5
Kassern
06.06.20
✎
15:50
|
(2) правой кнопкой нажмите на свойство вашей ТЧ, указана ли там данная процедура?
|
|||
6
Sultalin
06.06.20
✎
16:02
|
После вашего сообщения я привязал процедуру к самой табличной части. Там она работает, но она работает при любом изменении в строке. Мне это не совсем подходит я хотел работать только с конкретной колонкой конкретной строки. Поэтому я пытался привязывать к реквизитам колонок ТЧ, а не к самой ТЧ.
|
|||
7
Sultalin
06.06.20
✎
16:09
|
Прошу прощения за неграмотность в вопросе. Необходимость программирования в 1С свалилась можно сказать не откуда в момент, когда менять планы уже поздно.
|
|||
8
Kassern
08.06.20
✎
10:46
|
(7) Тогда привязывайте к событию конкретной колонки в ТЧ (так же при изменении). Будет событие отрабатывать, только когда измените данные в этой колонке. А в самом событии в процедуре уже пропишите, что и где нужно изменить в колонках.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |