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

Автор Тема: Заполнение строки документа значениями реквизитов табличной части документа  (Прочитано 3659 раз)

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

Оффлайн green_ezhik

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-03-31
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте!

Возник вопрос:mellow::
У меня есть документ "Техническое задание", который содержит реквизиты Проект, ДатаНачала, ДатаОкончания и Табличная часть документа "ПереченьРабот" с реквизитами СписокРабот, Ответственный, ДатаНачала и ДатаОкончания.

Как мне сделать так, чтобы у меня в реквизите документа в дату начала вносилась дата начала первой работы, а в дату окончания - дата окончания последней работы соответственно? :dfbsdfbsdf:

Не судите строго - только учусь!


Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Самый простой способ сделать это на клиенте перебором, что то вроде
ДатаНачала = Неопределено;
ДатаОкончания = Неопределено;
Для каждого Строка Из ТабличнаяЧасть Цикл

    Если ДатаНачала > Строка.ДатаНачала ИЛИ ДатаНачала = НЕопределено Тогда
        ДатаНачала = Строка.ДатаНАчала;
    КонецЕсли;

    Если ДатаОкончания < Строка.ДатаОкончания ИЛИ ДатаОкончания = Неопределено Тогда
        ДатаОкончания = Строка.ДатаОкончания;
    КонецЕсли;

КонецЦикла
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн k_aleks80

  • **
  • Сообщений: 65
  • РЕПУТАЦИЯ: 14
  • КПД: 22%
  • Регистрация: 2011-09-08
  • Сайт: 
  • Профессия: Программист 1С
Как вариант:
В модуле формы документа, в процедуре ПриОткрытии() запрос:
ВЫБРАТЬ
МИНИМУМ(ПереченьРабот.ДатаНачала) КАК ДатаНачала,
МАКСИМУМ(ПереченьРабот.ДатаОкончания) КАК ДатаОкончания
ИЗ
Документ.ТехническоеЗадание.ПереченьРабот КАК ПереченьРабот
ГДЕ
ПереченьРабот.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
ПереченьРабот.Ссылка

В запрос передаешь ссылку текущего документа. Затем заполняешь реквизиты формы датами из выборки запроса.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Только что делать с новым/измененным документом?

Оффлайн k_aleks80

  • **
  • Сообщений: 65
  • РЕПУТАЦИЯ: 14
  • КПД: 22%
  • Регистрация: 2011-09-08
  • Сайт: 
  • Профессия: Программист 1С
    Дальше уже можно предусмотреть всякие граничные условия. Если новый - пока не заполнять значение данных полей шапки; При изменении - код обработки оформить в виде отдельной процедуры (кстати, и в ПриОткрытии() вызывать процедуру вместо наличия кода - более гибко) и вызывать данную процедуру ПриЗаписи() объекта.
    Хотя вы правы - работа с БД не самый оптимальный вариант. Надо работать с реквизитами формы.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Надо работать с реквизитами формы.
Провокационный вопрос: Это как? Если не сложно, покажите пример.


Оффлайн LexaK

  • *****
  • Сообщений: 1267
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Надо работать с реквизитами формы.
Провокационный вопрос: Это как? Если не сложно, покажите пример.

попробуйте сделать следующее

у вас есть процедура которая определяет даты начала и окончания работ (см.выше).
необходимо ее вставить в события табличной части формы

1.ТабличнаяЧасть1ПриОкончанииРедактирования()
2.ТабличнаяЧасть1ПослеУдаления()

если пользователь что-то изменил в этапах, произойдет пересчет периодов
если пользователь удалил этап, произойдет пересчет периодов
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Чисто технически - совет хороший, ничего не имею против. Но мой личный фэншуй протестует против постоянного выполнения кода, который по смыслу интересен только по окончании редактирования всей таблицы или перед записью. Я б впихнул в "ПередЗаписью".

Оффлайн k_aleks80

  • **
  • Сообщений: 65
  • РЕПУТАЦИЯ: 14
  • КПД: 22%
  • Регистрация: 2011-09-08
  • Сайт: 
  • Профессия: Программист 1С
Присоединюсь к посту LexaK.
Чисто технически - совет хороший, ничего не имею против. Но мой личный фэншуй протестует против постоянного выполнения кода, который по смыслу интересен только по окончании редактирования всей таблицы или перед записью. Я б впихнул в "ПередЗаписью".
Пользователю, скорее всего, нужна оперативная обработка данных на форме. Поэтому здесь уместнее все-таки обработчики событий табличной части.

Оффлайн LexaK

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


Теги:
 

заполнение закладки "Материалы" в документе "Поступление из переработки"

Автор Sasa1CРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3594
Последний ответ 10 Июн 2013, 22:34
от Sasa1C
Заполнение поля справочника из подчиненного справочника

Автор Space_minusРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 1266
Последний ответ 19 Авг 2016, 05:01
от Space_minus
Заполнение формы на основании другой формы

Автор Саша АлдаевРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 359
Последний ответ 11 Июл 2017, 00:11
от oleg-x
Заполнение и открытие формы из другой формы

Автор РиммаРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 284
Последний ответ 18 Сен 2017, 15:42
от Римма
Автоматическое заполнение реквизита "Наименование"

Автор AlieramadaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3366
Последний ответ 23 Фев 2014, 10:17
от sadovod

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

* Последние вакансии

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
177 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
AIFrame
45 Сообщений
alex0402
44 Сообщений
andron81_81
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal