Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ввод текущей даты и времени в ячейку табличной части документа на сервере

Ввод текущей даты  и времени в ячейку табличной части документа на сервере
Я
   Sultalin
 
05.06.20 - 12:55
Хочу сделать так, чтобы в табличной части документа (там присутствуют 3 колонки с реквезитами (ДатаНачала,ДатаЗавершения,ДатаПроверки) при срабатывании события ПриИзменении, в выбранную ячейку(где я добавил кнопку Очистить для простоты) автоматически прописывалась текущая дата и время. (Мне пришлось это все делать для дипломной работы, но так как у меня менеджмент(управление) программирования особо не было и в результате познания по 1с у меня слабые) Подскажите какой тип данных сделать у этих реквизитов и как через форму изменять данные выбранной ячейки на сервере.

(то что пока есть)

&НаСервере

Процедура НаименованиеПриИзмененииНаСервере()

Объект.Децимальное = Объект.Наименование.Децимальное_обозначение;

КонецПроцедуры

&НаКлиенте

Процедура НаименованиеПриИзменении(Элемент)

НаименованиеПриИзмененииНаСервере();

КонецПроцедуры

&НаСервере

Процедура ЗаполнитьНаСервере()

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 40

|Децимальные_обозначенияОперации.НомерСтроки КАК Номер,

|Децимальные_обозначенияОперации.Операции КАК Операции,

|Децимальные_обозначенияОперации.Участок КАК Участок

|{ВЫБРАТЬ

|Операции,

|Операции,

|Участок.*}

|ИЗ

|Справочник.Децимальные_обозначения.Операции КАК Децимальные_обозначенияОперации

|ГДЕ

|Децимальные_обозначенияОперации.Ссылка.Децимальное_обозначение =Децимальное_обозначение

|

|ДЛЯ ИЗМЕНЕНИЯ";

Запрос.УстановитьПараметр("Децимальное_обозначение",Объект.Децимальное);

Результат = Запрос.Выполнить();

Объект.Таблица.Загрузить(Результат.Выгрузить());

КонецПроцедуры

&НаКлиенте

Процедура Заполнить(Команда)

ЗаполнитьНаСервере();

КонецПроцедуры

&НаСервере

Процедура ДатаПриИзмененииНаСервере()

Объект.Дата = ПолучитьОперативнуюОтметкуВремени();

КонецПроцедуры
   Kassern
 
1 - 06.06.20 - 11:12
(0) Если нужно, чтобы при изменении любой строки табличной части, заполнялись колонки с датами в текущей строке, то можете написать следующее. Не забудьте данную процедуру привязать к событиям табличной части.
&НаКлиенте
Процедура ВашаТаблицаПриИзменении(Элемент)
    ТекДанные=Элемент.ТекущиеДанные;
    ТекДанные.ДатаНачала=ТекущаяДата();
        ТекДанные.ДатаЗавершения=ТекущаяДата();
        ТекДанные.ДатаПроверки=ТекущаяДата();
КонецПроцедуры
   Sultalin
 
2 - 06.06.20 - 15:41
При использовании этого события у меня выдает ошибку
Документ.Сопроводительный.Форма.ФормаДокумента.Форма(57)}: Поле объекта не обнаружено (ТекущиеДанные)
    ТекДанные=Элемент.ТекущиеДанные;
Мне кажется, что мне нужно определить индекс строки текущей выбранной ячейки и передавать ее на сервер для изменения данных в нужной мне ячейке.
(мне нужно чтобы я "например нажал кнопку "очистить" в первой (или второй) строке  колонки "Дата начала"" и в выбранную ячейку(этой строке этой колонки) вписалось текущее время и дата).
Похоже что при создании таблицы в документе я заполняю данные на серверы и поэтому при работе с процедурами которые чисто &клиент у меня проблема поскольку не определяется место в котором я хочу провести изменение.
С обычным реквизитом с датой у меня не было проблемы, но с табличной частью беда...
   Kassern
 
3 - 06.06.20 - 15:47
(2) А что у вас в отладке пишет в параметре "Элемент" в данной процедуре?
   Kassern
 
4 - 06.06.20 - 15:49
(2) я скинул рабочий код привязанный к событию табличной части "ПриИзменении". Дата это простой тип, его можно на клиенте заполнять, зачем вам сервер...
   Kassern
 
5 - 06.06.20 - 15:50
(2) правой кнопкой нажмите на свойство вашей ТЧ, указана ли там данная процедура?
   Sultalin
 
6 - 06.06.20 - 16:02
После вашего сообщения я привязал процедуру к самой табличной части. Там она работает, но она работает при любом изменении в строке. Мне это не совсем подходит я хотел работать только с конкретной колонкой конкретной строки. Поэтому я пытался привязывать к реквизитам колонок ТЧ, а не к самой ТЧ.
   Sultalin
 
7 - 06.06.20 - 16:09
Прошу прощения за неграмотность в вопросе. Необходимость программирования в 1С свалилась можно сказать не откуда в момент, когда менять планы уже поздно.
   Kassern
 
8 - 08.06.20 - 10:46
(7) Тогда привязывайте к событию конкретной колонки в ТЧ (так же при изменении). Будет событие отрабатывать, только когда измените данные в этой колонке. А в самом событии в процедуре уже пропишите, что и где нужно изменить в колонках.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.