Заполнение ТЧ по 1 строке

1. user2056587 06.08.24 06:28 Сейчас в теме
Хотел бы попросить помощи с реализацией следующего функционала, есть тч есть столбец режим работы тс
там создается много строк около 10 с разным транспортом для создания накладных и каждый раз приходится выбирать смену день ночь, хотелось бы автоматизировать выбираешь на 1 строке дневная смена и во всех строках подтягивается дневная смена и иначе (тянется все это из справочника уатРежимРаботыТС)
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. yispepotri 06.08.24 09:06 Сейчас в теме
(3)
при изменении режима работы в ТЧ

ТекущиеДанные = Элементы.ТабличнаяЧасть.ТекущиеДанные
  
Если ЗначениеЗаполнено(ТекущиеДанные.РежимРаботы) Тогда
    Для каждого стр из ТабличнаяЧасть Цикл
       Если не ЗначениеЗаполнено(стр.РежимРаботы) Тогда
          стр.РежимРаботы = ТекущиеДанные.РежимРаботы;
       КонецЕсли;
    КонецЦикла;
КонецЕсли; 
Показать
user2056587; +1 Ответить
9. yispepotri 07.08.24 11:37 Сейчас в теме
(8) значение нужно получать по текущем данным, а не через элементы. Часть когда начиная с условия Если можно вынести на сервер и просто туда передавать Режим работы с клиента.
ТекущиеДанные = Элементы.Подготовка.ТекущиеДанные;
РежимРаботы = ТекущиеДанные.РежимРаботыТС;
  
Если ЗначениеЗаполнено(РежимРаботы) Тогда
    Для каждого стр из Подготовка Цикл
       Если не ЗначениеЗаполнено(стр.РежимРаботыТС) Тогда
          стр.РежимРаботыТС= РежимРаботы;
       КонецЕсли;
    КонецЦикла;
КонецЕсли; 
Показать
user2056587; +1 Ответить
11. yispepotri 07.08.24 11:49 Сейчас в теме
(10) извиняюсь там ваше название реквизита ТЧ - РежимРаботыТС

исправил
user2056587; +1 Ответить
15. yispepotri 07.08.24 17:05 Сейчас в теме
(14)
ТекСтрока = Элементы.Подготовка.ТекущиеДанные;

в данном случае это текущая строка ТЧ, и от нее можно получить все реквизиты данной ТЧ, все делается также как и с режимом работы, при необходимости добавлять проверки различные

 Для каждого стр из Подготовка Цикл
       Если не ЗначениеЗаполнено(стр.РежимРаботыТС) Тогда
          стр.РежимРаботыТС= РежимРаботы;
       КонецЕсли;

       Если не ЗначениеЗаполнено(стр.ВремяРаботы) Тогда
          стр.ВремяРаботы= ТекСтрока.ВремяРаботы;
       КонецЕсли;
    КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. yispepotri 06.08.24 08:39 Сейчас в теме
у всех строк всегда одинаковый режим работы? не вариант вынести режим работы вне ТЧ, как отдельный реквизит справочника?
usershmuser; +1 Ответить
3. user2056587 06.08.24 09:00 Сейчас в теме
Есть вероятность что режим работы будет меняться
(2)
4. user2033930 06.08.24 09:05 Сейчас в теме
(3) Есть так же вероятность, что после заведения 100 строк в ТЧ - кто-то захочет изменить данные в первой строке (да и в остальных тоже).

Посмотри, какие события есть у таблицы формы, может что-то пригодится.
5. yispepotri 06.08.24 09:06 Сейчас в теме
(3)
при изменении режима работы в ТЧ

ТекущиеДанные = Элементы.ТабличнаяЧасть.ТекущиеДанные
  
Если ЗначениеЗаполнено(ТекущиеДанные.РежимРаботы) Тогда
    Для каждого стр из ТабличнаяЧасть Цикл
       Если не ЗначениеЗаполнено(стр.РежимРаботы) Тогда
          стр.РежимРаботы = ТекущиеДанные.РежимРаботы;
       КонецЕсли;
    КонецЦикла;
КонецЕсли; 
Показать
user2056587; +1 Ответить
6. user2056587 07.08.24 11:03 Сейчас в теме
7. yispepotri 07.08.24 11:05 Сейчас в теме
(6) что именно не получается, продемонстрируйте код, как вы это реализовали
8. user2056587 07.08.24 11:25 Сейчас в теме
(7)
Прикрепленные файлы:
9. yispepotri 07.08.24 11:37 Сейчас в теме
(8) значение нужно получать по текущем данным, а не через элементы. Часть когда начиная с условия Если можно вынести на сервер и просто туда передавать Режим работы с клиента.
ТекущиеДанные = Элементы.Подготовка.ТекущиеДанные;
РежимРаботы = ТекущиеДанные.РежимРаботыТС;
  
Если ЗначениеЗаполнено(РежимРаботы) Тогда
    Для каждого стр из Подготовка Цикл
       Если не ЗначениеЗаполнено(стр.РежимРаботыТС) Тогда
          стр.РежимРаботыТС= РежимРаботы;
       КонецЕсли;
    КонецЦикла;
КонецЕсли; 
Показать
user2056587; +1 Ответить
10. user2056587 07.08.24 11:47 Сейчас в теме
(9) Поле объекта не обнаружено (РежимРаботы)
{Обработка.уатПакетнаяВыпискаПЛ.Форма.Форма.Форма(284)}:РежимРаботы = ТекущиеДанные.РежимРаботы;
в таком случае следующая ошибка
11. yispepotri 07.08.24 11:49 Сейчас в теме
(10) извиняюсь там ваше название реквизита ТЧ - РежимРаботыТС

исправил
user2056587; +1 Ответить
12. user2056587 07.08.24 16:21 Сейчас в теме
(11) Такой вопрос еще, а время автоматически не заполняется в такой ситуации, если вручную каждый выбирать то время меняется
Прикрепленные файлы:
13. user2033930 07.08.24 16:32 Сейчас в теме
(12) Ну так посмотри в коде - что происходит при ручном изменении и сделай то же самое.
14. user2056587 07.08.24 16:50 Сейчас в теме
(13) Процедура ПодготовкаДатаВозвращенияПриИзменении(Элемент)
ТекСтрока = Элементы.Подготовка.ТекущиеДанные;
Если ТекСтрока.ДатаВыезда > ТекСтрока.ДатаВозвращения Тогда
ТекСтрока.ДатаВыезда = ТекСтрока.ДатаВозвращения;
КонецЕсли;

ОбновитьИзменениеДанныхПЛ();
КонецПроцедуры
15. yispepotri 07.08.24 17:05 Сейчас в теме
(14)
ТекСтрока = Элементы.Подготовка.ТекущиеДанные;

в данном случае это текущая строка ТЧ, и от нее можно получить все реквизиты данной ТЧ, все делается также как и с режимом работы, при необходимости добавлять проверки различные

 Для каждого стр из Подготовка Цикл
       Если не ЗначениеЗаполнено(стр.РежимРаботыТС) Тогда
          стр.РежимРаботыТС= РежимРаботы;
       КонецЕсли;

       Если не ЗначениеЗаполнено(стр.ВремяРаботы) Тогда
          стр.ВремяРаботы= ТекСтрока.ВремяРаботы;
       КонецЕсли;
    КонецЦикла;
Показать
16. user2056587 08.08.24 10:12 Сейчас в теме
17. user2056587 08.08.24 14:47 Сейчас в теме
(15) хотя нет не меняется все равно
Прикрепленные файлы:
18. yispepotri 08.08.24 14:54 Сейчас в теме
(17) код пришлите, как это реализовали
19. user2056587 08.08.24 15:02 Сейчас в теме
(18)
Прикрепленные файлы:
20. yispepotri 08.08.24 15:05 Сейчас в теме
(19) вы эту строку с моего примера брали? это пример, вместо ВремяРаботы должен быть ваш реквизит, я же не знаю какие у вас реквизиты, по этому дал такое название, а вы уже подставляете то что нужно

ТекСтрока.ВремяРаботы;


видимо там должно быть ДатаВозвращения
21. user2056587 08.08.24 15:08 Сейчас в теме
(20) Да я туда подставила их
Прикрепленные файлы:
22. yispepotri 08.08.24 15:15 Сейчас в теме
(21) все правильно там где в цикле проверяете значение заполнено, в данном случае значение уже заполнено, поэтому оно не менеятся. Если нужно чтобы всегда проставлялись остальные строки, то убрать вторую проверку Значение заполнено
23. user2056587 08.08.24 16:08 Сейчас в теме
(22) нет к сожалению все равно не заполняется(
24. yispepotri 08.08.24 16:10 Сейчас в теме
(23) мы сейчас про что говорим, ДатаВозвращения или ДатаВыезда? сразу присылайте код, как вы делаете, на словах очень трудно понимать
25. user2056587 08.08.24 16:14 Сейчас в теме
(24) ДатаВозвращения

ТекущиеДанные = Элементы.Подготовка.ТекущиеДанные;
РежРаб = ТекущиеДанные.ДатаВозвращения;
Для каждого стр из Подготовка Цикл
//Если не ЗначениеЗаполнено(стр.ДатаВыезда) Тогда
стр.ДатаВыезда = РежРаб;
//КонецЕсли;
КонецЦикла;
26. yispepotri 08.08.24 16:16 Сейчас в теме
(25) а почему тут ДатаВыезда, если хотите заполнить ДатаВозвращения?
стр.ДатаВыезда = РежРаб;
27. user2056587 08.08.24 16:25 Сейчас в теме
(26) только у 1 строки меняется
Прикрепленные файлы:
28. yispepotri 08.08.24 16:27 Сейчас в теме
(27) данная процедура вызвается при изменении ДатыВозвращение, а не режима работы
29. user2056587 08.08.24 16:30 Сейчас в теме
(28) а как реализовать чтобы при изменении режима работы?
30. yispepotri 08.08.24 16:31 Сейчас в теме
(29) просто перенести эту часть кода, в процедуру при изменении режима работы)
31. user2056587 03.09.24 01:35 Сейчас в теме
(30) У меня новый вопрос по уату. В общем нужно вывести в графу до количество дней вахты
точнее дату создания передвижение физ лиц + количество дней вахты.))
Прикрепленные файлы:
32. yispepotri 16.09.24 10:38 Сейчас в теме
(31) если еще не решили, ну я думаю в виде строки заполнять строкой
Строка(Дата + "/" + КоличествоДнейВахты)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот