1. karamazoff 52 06.03.20 13:37 Сейчас в теме

Программное создание документа и показ формы без записи

Всем доброго дня! Проблема такая:
Программно создать форму документа, заполнить ее и показать пользователю без записи объекта - это делается для большинства документов, но вот есть в БП документ ОперацияБух, которая не имеет табличной части а напрямую показывает записи регистров. Чтобы программно создать ОперациюБух надо его создать, записать, чтобы была ссылка, затем создать набор записи регистров, где указать, что регистратор наша ссылка. Ни у кого нет идей как все-таки можно организовать без записи документа?
Найденные решения
12. bad_wag 28 06.03.20 16:01 Сейчас в теме
Без проблем, вы для примера откройте уже заполненную бухОперацию, посмотрите какие на форме создались реквизиты и по аналогии сделайте. Вкратце, когда вы отмечаете нужный вам регистр, на форме создается таблица с структурой этого регистра, вот вам нужно сделать тоже самое. Сам такое проделывал, ничего сложного
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
14. AlexO 128 07.03.20 15:21 Сейчас в теме
(1)Т.е. ссылки - нет, документа - нет, а записи в регистрах с обязательным регистратором - хочу? И что же вы хотите получить от регистров в таком случае? Чтобы они съимитировали вам "как-будто у нас есть регистратор"?
2. Romeo_1c_programmer 20 06.03.20 13:41 Сейчас в теме
можно сделать обработку, на форме которой имитировать структуру документа с предварительными данными.
3. karamazoff 52 06.03.20 13:50 Сейчас в теме
(2)это сложно и не то, хочется понять можно-ли стандартно, по идее надо повесить движения на несуществующий регистратор, а при записи подставлять реальный, но как? В интерактивном режиме мы же можем без сохранения док-та вбивать в него строки, они-же где-то храняться?
5. Romeo_1c_programmer 20 06.03.20 13:56 Сейчас в теме
(3)данные в табличном поле хранятся
16. AlexO 128 07.03.20 15:34 Сейчас в теме
(5)
данные в табличном поле хранятся
Там нет обычного ТП. Там ТП привязан жестко к регистрам, отбор по регистру (регистрам), и вывод результата отбора в ТП.
Хотите в ТП хранить подобное условию топика - сделайте имитацию "вывод отбора по РН в ТП".
15. AlexO 128 07.03.20 15:31 Сейчас в теме
(3)
хочется понять можно-ли стандартно
"Стандартные" лукавства не предусмотрены. Если нужен регистратор - он должен быть.
по идее надо повесить движения на несуществующий регистратор, а при записи подставлять реальный, но как?
По какой такой идее у вас образуется "несуществующий" регистратор? Если он в поле - он имеет ссылку, если есть ссылка - он записан, и существует. Или вы хотите с РН договориться "по-братски", чтобы он "ну закрой глаза, что тут нет регистратора, а, что тебе стоит"?
И какой-то "реальный" (т.е. другой) подменять вместо уже сохраненного - это как без удаления записи и восстановления с другим регистратором?
В интерактивном режиме мы же можем без сохранения док-та вбивать в него строки, они-же где-то храняться?
Они нигде не хранятся в привычном вам понимании. Закройте форму, и вы эти строки нигде больше не увидите. На мониторе тоже вы много чего видите, но вся эта информация нигде не "хранится".
В 1С вы работаете, прежде всего, с БД, а не с монитором. Поэтому все, что вам нужно для операций/изменений - должно храниться в базе, в том или ином виде. Хотите менять РН - дайте ему регистратор.
Хотите видеть только "на мониторе" - делайте имитацию "типа записи из РН, но на самом деле - это просто "картинки" с закосом под "как-будто они в РН". Только это уже будет не документ БухОперация, а сформированная вами картинка "как-будто". И "настоящий" РН ничего об этом "знать", конечно же, не будет.
20. AlexO 128 07.03.20 15:41 Сейчас в теме
(2)
можно сделать обработку
А чем сам документ не устраивает? Имитируйте хоть документ, хоть что хотите, не записывая.
4. Romeo_1c_programmer 20 06.03.20 13:54 Сейчас в теме
Можно и в документе, только признак активности снять
6. karamazoff 52 06.03.20 13:57 Сейчас в теме
(4)как? Цель открыть юзеру заполненный но не записанный документ ОперацияБух
7. Romeo_1c_programmer 20 06.03.20 14:00 Сейчас в теме
(6)заполняйте данные в поле табличного документа на форме
8. karamazoff 52 06.03.20 14:01 Сейчас в теме
17. AlexO 128 07.03.20 15:36 Сейчас в теме
(7)
заполняйте данные в поле табличного документа на форме
НаборЗаписей кто будет заполнять - Пупкин? Без регистратора?
9. Romeo_1c_programmer 20 06.03.20 14:09 Сейчас в теме
Примерно вот так должно выглядеть
Код
   БухОперация = Документы.ОперацияБух.СоздатьДокумент();
   БухОперация.Организация = Организация();
   БухОперация.Дата = ТекущаяДата();
   
   БухОперацияСсылка = БухОперация.Ссылка;
   Проводка = БухОперация.ЭтотОбъект.Движения.Хозрасчетный.Добавить();
   
   БухОперация.ПолучитьФорму().Открыть();
Показать полностью
10. karamazoff 52 06.03.20 14:19 Сейчас в теме
(9)Это наверно для обычного приложения, надо для управляемого (не сказал сразу), так не заработает, надо получать на клиенте форму нового, заполнять реквизиты формы (там есть ХозрасчетныйНаборЗаписей) и потом открывать
18. AlexO 128 07.03.20 15:37 Сейчас в теме
(10)
Это наверно для обычного приложения, надо для управляемого
Да без разницы, принцип работы отбора по регистру един в ОФ и УФ.
11. karamazoff 52 06.03.20 14:23 Сейчас в теме
вот так получается, но приходится все делать на клиенте
Форма = ПолучитьФорму("Документ.ОперацияБух.ФормаОбъекта");
проводка = Форма.ХозрасчетныйНаборЗаписей.Добавить();
//заполняем
проводка = Форма.ХозрасчетныйНаборЗаписей.Добавить();
//заполняем
проводка = Форма.ХозрасчетныйНаборЗаписей.Добавить();
//заполняем
Форма.Открыть();
19. AlexO 128 07.03.20 15:39 Сейчас в теме
(11)
вот так получается
Ничего "так" у вас не получается, либо - получается совсем не то, что запросили в (1)
но приходится все делать на клиенте
Вы в любом случае "все" делаете на клиенте. Вы же с формой работаете.
А отбор по регистру - он будет на сервере, но у вас же ничего нет, поэтому и отбор вы сделать не сможете никак.
22. karamazoff 52 10.03.20 10:14 Сейчас в теме
(19)ну здасьте! попробуите или вам видео запостить?
12. bad_wag 28 06.03.20 16:01 Сейчас в теме
Без проблем, вы для примера откройте уже заполненную бухОперацию, посмотрите какие на форме создались реквизиты и по аналогии сделайте. Вкратце, когда вы отмечаете нужный вам регистр, на форме создается таблица с структурой этого регистра, вот вам нужно сделать тоже самое. Сам такое проделывал, ничего сложного
13. AlexO 128 07.03.20 15:19 Сейчас в теме
(12)
Без проблем, вы для примера откройте уже заполненную бухОперацию, посмотрите какие на форме создались реквизиты и по аналогии сделайте.
А ничего, что у вас БО уже заполнена и сохранена?
Как вы собираетесь показать на незаписанном доке (соответственно, нет ссылки) как хочет автор:
"Программно создать форму документа, заполнить ее и показать пользователю без записи объекта"?
Если нет ничего - ничего и не покажет. А набор регистров согласно движениям - это только набор регистров, и ничего больше.
А не заполнение.
21. bad_wag 28 07.03.20 23:01 Сейчас в теме
(13)
А ничего, что у вас БО уже заполнена и сохранена?

Как раз я про заполненную и сказал, что бы посмотреть как там данные хранятся

(13)
Как вы собираетесь показать на незаписанном доке (соответственно, нет ссылки) как хочет автор

Очень просто, заполнить данные формы и показать ее пользователю, ему только останется нажать "записать и закрыть"
karamazoff; +1 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Специалист 1 категории (Программист 1С)
Фрязино
зарплата от 110 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист 1 категории (Методист-аналитик 1С)
Фрязино
зарплата от 100 000 руб.
Полный день

Главный архитектор 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (Оперативный учет)
Санкт-Петербург
зарплата от 120 000 руб.
Полный день