|
заполнение ТЧ оставшихся строк табличного поля значением текущей колонки | ☑ | ||
---|---|---|---|---|
0
Chebyrashka2D
30.06.16
✎
16:22
|
Добрый день товарищи.
Помогите плз начинающему программисту 1с. суть - создал свой документ, в нём есть колонки Дата Начало и Дата Конец (тип Дата), не могу разобраться как написать процедуру по автоматическому заполнению всех строк в это колонке, при условии заполнения руками хотя бы одной строки в данной колонке (Дата начало или Дата конец). А то менеджеры меня побьют заполняя десятки строк датами((( |
|||
1
Ёпрст
30.06.16
✎
16:29
|
заполнитьЗначения
|
|||
2
Nuobu
30.06.16
✎
16:29
|
(0) Процедура ЗаполнитьДату()
ДатаВТЧ = Неопределено; Для Каждого СтрокаТЧ из ТЧ Цикл Если СтрокаТЧ.ДатаНачало <> Дата('00010101') Тогда ДатаВТЧ = строкаТЧ.ДатаНачало; Прервать; ИначеЕсли СтрокаТЧ.ДатаКонец <> Дата('00010101') Тогда ДатаВТЧ = строкаТЧ.ДатаКонец; Прервать; КонецЕсли; КонецПроцедуры Если ДатаВТЧ <> Неопределено Тогда Для Каждого СтрокаТЧ из ТЧ ЦИкл СтрокаТЧ.ДатаНачало = ДатаВТЧ; СтрокаТЧ.ДатаКонец = ДатаВТЧ; КонецЦикла; КонецЕсли; |
|||
3
Гаврилин Игор
30.06.16
✎
16:29
|
Ну определи какой шаг должен быть между 2мя точками интервала и в цикле заполни.
|
|||
4
lxs
30.06.16
✎
16:38
|
(0) Обычное приложение, обработка заполнения табличных частей, заполнение всех строк ТЧ значением из первой строки выделенной колонки.
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ЭлементТабличноеПоле) Экспорт ИмяКолонки = ЭлементТабличноеПоле.ТекущаяКолонка.Имя; Если Объект[ИмяТабличнойЧасти].Количество() Тогда Значение = Объект[ИмяТабличнойЧасти].Получить(0)[ИмяКолонки]; Для каждого ТекСтрока Из Объект[ИмяТабличнойЧасти] Цикл ТекСтрока[ИмяКолонки] = Значение; КонецЦикла; КонецЕсли; КонецПроцеду |
|||
5
Chebyrashka2D
30.06.16
✎
17:06
|
Спасибо за быстрые ответы. Простите что не написал про конфигурацию - УТ 11.2.
Использовал первый предложенный код, подставил свои значения, процедура не отрабатывает, где я торможу? вот код- &НаСервере Процедура ЗаполнитьДату() ДатаВТЧ = Неопределено; Для Каждого СтрокаТЧ из Документы.ПонедельноеПланирование.ТабЧастьНеделя Цикл Если СтрокаТЧ.ДатаНачало <> Дата('00010101') Тогда ДатаВТЧ = строкаТЧ.ДатаНачало; Прервать; ИначеЕсли СтрокаТЧ.ДатаКонец <> Дата('00010101') Тогда ДатаВТЧ = строкаТЧ.ДатаКонец; Прервать; КонецЕсли; КонецЦикла; Если ДатаВТЧ <> Неопределено Тогда Для Каждого СтрокаТЧ из Документы.ПонедельноеПланирование.ТабЧастьНеделя ЦИкл СтрокаТЧ.ДатаНачало = ДатаВТЧ; СтрокаТЧ.ДатаКонец = ДатаВТЧ; КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
6
lxs
30.06.16
✎
17:11
|
(5) вот тут:
Документы.ПонедельноеПланирование.ТабЧастьНеделя |
|||
7
lxs
30.06.16
✎
17:12
|
Объект.ПонедельноеПланирование.ТабЧастьНеделя
|
|||
8
lxs
30.06.16
✎
17:12
|
*Объект.ТабЧастьНеделя
|
|||
9
Chebyrashka2D
30.06.16
✎
17:43
|
Спасибо Мастера.
только процедуур переписать не много пришлось. а то меняю одну колонку, а перезаполнение идёт по обеим)) &НаСервере Процедура ЗаполнитьДатуНачало() ДатаВТЧ = Неопределено; Для Каждого СтрокаТЧ из Объект.ТабЧастьНеделя Цикл Если СтрокаТЧ.ПеваяНеделяНачало <> Дата('00010101') Тогда ДатаВТЧ = строкаТЧ.ПеваяНеделяНачало; Прервать; КонецЕсли; КонецЦикла; Если ДатаВТЧ <> Неопределено Тогда Для Каждого СтрокаТЧ из Объект.ТабЧастьНеделя ЦИкл СтрокаТЧ.ПеваяНеделяНачало = ДатаВТЧ; КонецЦикла; КонецЕсли; КонецПроцедуры Процедура ЗаполнитьДатуКонец () ДатаВТЧ = Неопределено; Для Каждого СтрокаТЧ из Объект.ТабЧастьНеделя Цикл Если СтрокаТЧ.ПерваяНеделяКонец <> Дата('00010101') Тогда ДатаВТЧ = строкаТЧ.ПерваяНеделяКонец; Прервать; КонецЕсли; КонецЦикла; Если ДатаВТЧ <> Неопределено Тогда Для Каждого СтрокаТЧ из Объект.ТабЧастьНеделя ЦИкл СтрокаТЧ.ПерваяНеделяКонец = ДатаВТЧ; КонецЦикла; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ЗаполнитьДатуНачало(); ЗаполнитьДатуКонец (); КонецПроцедуры В любом случае спасибо. Вопросик возни, не подскажете литературу, или ресурсы, где подробно описано как писать процедуры и функции?? Заранее благодарю! |
|||
10
Nuobu
30.06.16
✎
17:44
|
в ЖКК.
|
|||
11
lxs
01.07.16
✎
09:28
|
&НаКлиенте
Процедура СписокПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) СписокПриОкончанииРедактированияНаСервере(Элемент.ТекущийЭлемент.Имя, Элемент.ТекущиеДанные[Элемент.ТекущийЭлемент.Имя]); КонецПроцедуры &НаСервере Процедура СписокПриОкончанииРедактированияНаСервере(ИмяКолонки, Значение) Если ИмяКолонки = "ДатаРождения" Тогда ТаблицаЗначений = Объект.Список.Выгрузить(); ТаблицаЗначений.ЗаполнитьЗначения(Значение, ИмяКолонки); Объект.Список.Загрузить(ТаблицаЗначений); КонецЕсли; КонецПроцедуры |
|||
12
lxs
01.07.16
✎
09:31
|
(11)+ при условии, что имена колонок списка на форме совпадают с именами реквизитов ТЧ
|
|||
13
Chebyrashka2D
01.07.16
✎
10:31
|
Ок. Спасибо!)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |