ВводНаОсновании программно

Форум 1С: Одинэс.Ру

Найти!

ВводНаОсновании программно

Новый ИП
28.04.2009 - 13:16
Например, я делаю в течении работы много Документов "Заявка Покупателя". Затем отчётом "Заявки покупателей" вижу десятка два этих заявок. Теперь хочу на таблице отчёта рядом с кнопочками "Обновить" и "Настроить" повесить ещё одну кнопочку, чтобы при нажатии на неё АВТОМАТИЧЕСКИ выписалась Реализация на все эти заявки из отчёта. Проблема в том, как программно создать, записать, провести и закрыть Документ.Реализацию на основании Документа.ЗаявкаПокупателя. Например, если делать через
ОткрытьФорму("Документ.Реализация",ДокРеализация, ДокОснование);
то Реализация отлично вводится, но ругается на
ДокРеализация.Записать(); ДокРеализация.Провести();
Если делать через
ДокРеализация = СоздатьОбъект("Документ.Реализация");
ДокРеализация.Новый();      
ДокРеализация.ДатаДок = ДатаКонца;
ДокРеализация.Основание = ДокОснование;
и т.д., то таблица не заполняется на основании. А хотелось бы...
К списку тем 1 > К списку форумов

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

odines.ru
22.10.2020 - 14:44
Смотри также:
Проблема с УРИБ.
Как назначить тип реквизиту реквизиту табличной часть типа "Справочник"
Как сделать документ который будет вызываться сочетанием клавишь

Re: ВводНаОсновании программно

101
1 - 28.04.2009 - 13:23
либо открывать форму отрабатывать модуль документа и программно закрывать , либо интерактивно заполнять все в процедуре по кнопке

Re: ВводНаОсновании программно

101
2 - 28.04.2009 - 13:30
так записывать нужно все таки правильно , и ничего не будет ругаться

Re: ВводНаОсновании программно

Новый ИП
3 - 28.04.2009 - 13:36
либо интерактивно заполнять все в процедуре по кнопке
Я правильно поняла, что это означает практически копирование всего (включая привязанные процедуры), что находится в процедуре ВводНаОсновании в Документе.Реализация и перенос этого в Отчёт.ЗаявкиПокупателей поМоейКнопке(), чтобы сформировать табличную часть Документа.Реализации?
А что значит открывать форму отрабатывать модуль документа и программно закрывать? Как программно закрыть? После
ОткрытьФорму("Документ.Реализация",ДокРеализация, ДокОснование);
можно сделать
ДокРеализация.Форма.Закрыть(1);
но тогда выскакивает вопрос о желании сохранить. Попытка записать принудительно через
ДокРеализация.Записать();
выдаёт ошибку

Re: ВводНаОсновании программно

100п
4 - 28.04.2009 - 13:48
Посмотрите функцию Заполнить(ДокОсн) например в модуле формы дока СчетФактура. Это должно снять все вопросы

Re: ВводНаОсновании программно

101
5 - 28.04.2009 - 13:53
а так же пакетный ввод документов

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

odines.ru
22.10.2020 - 14:44
Смотри также:
Нет возможности разместить документ после ТА
не отрабатывает метод Записать справочника Номенклатура
реквизит типа "Документ"

Re: ВводНаОсновании программно

Новый ИП
6 - 28.04.2009 - 14:00
4-100п > Конечно, можно пройтись по строкам табличной части Заявки и перенести её в Реализацию (или Выгрузить на худой конец), но вся проблема в том, что если после Заявки прошла Реализация ЧАСТИ товара вручную, то при заполнении ещё одной Реализации в её табличную часть попадёт не вся Заявка, а только неисполненная (не отгруженная ранее) часть. Таким образом, прийдётся повторять всю процедуру заполнения табличной части Реализации, чего не хотелось бы, раз уж это уже описано в Реализации.ВводНаОсновании

Re: ВводНаОсновании программно

VZ
7 - 28.04.2009 - 14:02
Спрашивается, накуа юзать форму для программного формирования? Что, у кода есть глазки, чтоб посмотреть, и ручки, чтоб мышку подвигать?
 
У аффтара смещенное понятие о вводе "на основании". К собственно структуре документа "на основании" никак не сказывается. В записи документа нет никаких полей, указывающих на методу создания.
"На основании" - метод для чисто интерактивного ввода. Помогает переносить значения реквизитов из документа "основания". И все на этом.
И не путать с "подчиненностью" ;)

Re: ВводНаОсновании программно

andrewg
8 - 28.04.2009 - 15:05
0-Новый ИП > Если это торговля то советую применить следующий способ:
1.Если это отчет с разворотом по контрагенту-заявке, то в ячейку контрагента, в расшифровку ячейки, поместить вызов процедуры с параметром "контрагент". Процедура будет заполнять 1 реализацию по регистру заявки. В торговле 77 есть особенность - реализация не введенная на основании заявки закроет автоматически все висяки по всем заявкам.
2.По клику в ячейку открывать меню - или открыть контрагента или ввести реализацию.

Re: ВводНаОсновании программно

Inkognito
9 - 29.04.2009 - 05:42
8-andrewg >
1. Это для каждой Заявки нужно будет кликнуть по ячейке и выбрать "Ввести реализацию"? Ну, а зачем, если я могу автоматически при выводе строки с Заявкой сразу на эту Заявку и офрмлять Реализацию?
2. И как мне затем в процедуре (после клика на ячейке) определять количество номенклатуры, которое нужно отгрузить? Опять делать КонОст(Количество) с наложением фильтров на регистр?

Re: ВводНаОсновании программно

Inkognito
10 - 29.04.2009 - 05:48
7-VZ >
"На основании" - метод для чисто интерактивного ввода. Помогает переносить значения реквизитов из документа "основания". "
Так вот этот метод срабатывает только при интерактивном вводе с открытием Формы документа. А почему нельзя обратиться к этому методу при
ДокументРеализ = СоздатьОбъект ("Документ.Реализация");
ДокументРеализ.Новый(ДокОснование);? понимаю, что это вопрос к разработчикам 1С, и, вроде, в v8 это решено, но неужели за столько лет существования v7.7 никто этого не решил?

Re: ВводНаОсновании программно

VZ
11 - 29.04.2009 - 06:18
(10) Потомушто это разные документы. И у каждого свой набор реквизитов. И они на уровне платформы никак не связаны. Что дает гибкость в метаданных. И наоборот: связывание реквизитов на уровне описания методанных даст весьма жесткую и трудномодифицируемую структуру. Почему перед твоими глазами только пара документов? Бери все. И не попарные связки, а "один ко многим"...
Гораздо легче описать эти связи "индивидуально", что и делается в процедуре ВводНаОсновании(). Собственно, для этого она и предназначена.
 
Конечно, работа была бы значительно легче, ежели бы стандарты описания метаданных существовали перед созданием первых типовых. Но увы... Стандарты рождались вместе с типовыми. Потому в одном документе "Контрагент", в другом "Покупатель". В одном "товар", во втором "Услуга", в третьем "Номенклатура"....
И исправить уже ничего нельзя. Т.е., руками в конфе можно, но через рассылаемые обновления - не выйдет.
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Книга учета доходов и расходов в 1С:Подрядчик строительства Остатки по НУ. Количество. »
© 2009 Форум 1С: Одинэс.Ру