0 / 0 / 0
Регистрация: 08.06.2013
Сообщений: 5
|
||||||
1 | ||||||
Создать несколько документов программно09.06.2013, 00:04. Показов 10966. Ответов 9
Метки нет (Все метки)
Существует документ "Распоряжение", на его основе при проведении документа требуется создать документы "Задание" количество которых равно количеству строк в табличной части "Распоряжения". При этом в случае если Проведенное "Распоряжение" после этого редактируется, то те документы которые были созданы обновлялись но не удалялись (т.к. допустим кто-то уже внес новые данные в эти документы вручную и не хочется чтобы эти данные удалились) или тем более не дублировались.
например: ------------------------------------------ Распоряжение имеет следующие поля: Реквизиты: дата, сотрудник Табличная часть: склад, количество ------------------------------------------ Задание имеет следующие поля: Реквизиты: дата, сотрудник, склад, количество Табличная часть: наименование товара, количество сейчас у меня это реализовано так:
0
|
09.06.2013, 00:04 | |
Ответы с готовыми решениями:
9
Создание документов программно 1С 7.7. Несколько пиктограмм для табличной части журнала документов Как выбрать несколько документов одного типа в обработке? Вывести несколько табличных документов в Word с разной ориентацией страниц |
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
09.06.2013, 00:45 | 2 |
Определитесь с регламентом. Обычно д.б. чёткое соответствие, поэтому сначала производится попытка найти существующий док и обновить его. Иначе только - создать
Добавлено через 3 минуты МойДокЗадание = если найден - найденная ссылка.ПолучитьОбъект() Иначе создать далее по тексту
0
|
0 / 0 / 0
Регистрация: 08.06.2013
Сообщений: 5
|
|
09.06.2013, 11:08 [ТС] | 3 |
Я понимаю что нужно сделать условие поиска, по которому нужно отслеживать существует созданныйлдокумент или нет, но как раз именно это я и не знаю как реализовать
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
09.06.2013, 11:14 | 4 |
В одном из доков нужна ссылка на другой. В 1с принято заводить этот атрибут в "нижележащем" доке: Задание.Распоряжение(тип ДокСсылка.Распоряж)
0
|
0 / 0 / 0
Регистрация: 08.06.2013
Сообщений: 5
|
||||||
09.06.2013, 12:20 [ТС] | 5 | |||||
а не могли бы вы поподробнее расписать реализацию условия "если" с учетом того что я сделал следующие дополнения в код ? создал в документе "Задание" реквизит "ДокументОснование" с типом данных "ДокументСсылка.Распоряжение" создал в документе "Распоряжение" в табличной части реквизит "СформированноеЗадание" с типом данных "ДокументСсылка.Задание" также в код проведения "Распоряжения" добавил код
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
09.06.2013, 13:28 | 6 |
для здоровья лучше избежать кольцевой ссылки. Т.е. оставляем только в "Задание".
синт.пом "ОбработкаЗаполнения". Мне алгоритм неясен: штатный ВводНаОсновании или "по моему хотению" убей - не пойму
0
|
0 / 0 / 0
Регистрация: 08.06.2013
Сообщений: 5
|
|
09.06.2013, 13:59 [ТС] | 7 |
смысл смотри вложенную картинку один сотрудник готовит документ, который создает несколько документов на основании данных табличной части для других сотрудников и нужно чтобы не задваивать созданные документы при перепроведении первого нужно что-то сделать с кодом который я написал в самом начале темы
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
09.06.2013, 14:41 | 8 |
забудь про свой код.
По каждой строке Проверить, заполнен ли док. Если нет - проверить, существует ли он. Если нет - создать, записать, заполнить атрибут строки Если да - обновить это называется алгоритм
0
|
0 / 0 / 0
Регистрация: 08.06.2013
Сообщений: 5
|
|
09.06.2013, 16:29 [ТС] | 9 |
спасибо за совет, только вот было бы круто если бы вы хоть какой нибудь пример кода написали ибо в книжках о программировании 1с не описаны такие вещи, а вы очень абстрактными и очень общими фразами оперируете. также мне не понятно что значит "заполнен ли док." (какой док и что значит заполнен - создан или еще что-то), что такое "атрибут строки" (стандартный реквизит "ссылка", значение созданного мною столбца "Сформированное задание")
0
|
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
|
|
09.06.2013, 17:38 | 10 |
можно подумать, что на Вашем чердаке порядок должен наводить я.
1. Для Каждого ТекСтр Из ТЧ Цикл 2. Док=ТекСтр.СвязанныйДок - это Ваш, тип Ссылка. 3. Если ЗначениеЗаполнено(Док) тогда обновить 4. Попытаться найти этот док по ключам: я советовал вроде воткнуть в него ссылку на док-основание 5. Если нашли - ТекСтр.СвязанныйДок =док.Ссылка. 5.1. Обновить. 6. Создать док. 7. Обновить. (для всех случаев) Распределение скриптов по функциям и процедурам - дело вкуса и ситуации (упр/неупр, например) Добавлено через 3 минуты я блок-схему рисовать не буду
1
|
09.06.2013, 17:38 | |
09.06.2013, 17:38 | |
Помогаю со студенческими работами здесь
10
Вывод в печатную форму несколько выделенных документов Как программно обратиться к журналу документов Как программно создать несколько StackPanel? Как программно создать несколько текстовых полей на странице? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |