Имя: Пароль:
1C
1С v8
Автосоздание документа
0 Я_Ника
 
08.05.15
16:37
Есть два документа Док1 и Док 2. У Док1 есть реквизит1(Тип.Булево) Как при изменении реквизит1 на Истина создать Док2, записать в него данные из  Док1. А после этого удалить Док1?
1 FIXXXL
 
08.05.15
16:38
это плохой вариант
2 Garykom
 
гуру
08.05.15
16:38
(0) конечно же использовать для этой цели 3-й Док3 !!!!
3 Я_Ника
 
08.05.15
16:41
(2) Каким образом?
4 Garykom
 
гуру
08.05.15
16:43
(3) а это уже от фотки зависит...
5 ColonelAp4u
 
08.05.15
16:54
В При Записи Документа проверяй если в док1 реквизит истина тогда создать новый док2 переноси реквизиты и ТЧ затем док2.записать , док1.удалить
6 ColonelAp4u
 
08.05.15
16:54
хотя мб и не так
7 Любопытная
 
08.05.15
16:59
(0) Неправильный у вас бутерброд получается. А если это ваше булево десять раз потыкать туда-сюда?
8 Garykom
 
гуру
08.05.15
17:02
(7) а после 1-го тыку. доку в который тыкнули галку уже тютю...так что все ок
9 Я_Ника
 
08.05.15
17:10
(5) Сделала так:
Процедура ПриЗаписи()
    Если ПометкаИзъятия=Истина Тогда
        Док1=Документы.ВыдачаПропускаПосетителю;
        Док2=Документы.СтопЛист();
        Док2.СоздатьДокумент();
        Док2.Идентификатор=Док1.Идентификатор;
        Док2.Причина=" ";
        Док2.Записать();
        Док1.Удалить();
        КонецЕсли
КонецПроцедуры

при запуске ошибка:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{Документ.ВыдачаПропускаПосетителю.МодульОбъекта(74)}: Метод объекта не обнаружен (СтопЛист)
        Док2=Документы.СтопЛист();
10 Garykom
 
гуру
08.05.15
17:13
(9) это какое то 18+...
11 Лефмихалыч
 
08.05.15
17:15
Док2=Документы.СтопЛист.СоздатьДокумент();
12 GROOVY
 
08.05.15
17:15
Удалять документы - плохая примета.
13 Лефмихалыч
 
08.05.15
17:16
Док1=Документы.ВыдачаПропускаПосетителю.НайтиПоНомеру(); - как минимум. Или еще как-то, иначе свалится на строчке
Док2.Идентификатор=Док1.Идентификатор;
14 Звездец
 
08.05.15
17:25
(12) Соглашусь, лучше блокируйте изменения в док1, ну и создавайте док2, для сего можно использовать ввод на основании
15 Garykom
 
гуру
08.05.15
17:40
Диалог двух бухгалтерш, перегоняющих отгрузки из торговой базы 1C в бухгалтерскую 1C.
- 21-й век, космические корабли бороздят просторы вселенной, а я вручную перебиваю контрагентов...
- А мне Саша показал, как можно это автоматизировать.
- ???
- Смотри, Ctrl-C и Ctrl-V!
Вы не поверите, но у них в штате есть программист 1С - Саша.
http://bash.im/quote/433667
16 Я_Ника
 
08.05.15
17:57
(14) А как и где тогда прописывать блокировку документа после ввода на основании?
17 Garykom
 
гуру
08.05.15
18:00
(16) реквизит в него типа статус = архивный

и при открытии блок по статусу или ТолькоПросмотр делать
18 Torquader
 
08.05.15
18:01
(15) У них поди и выгрузка программистом написана, только пользователи её использовать не умеют - там же нужно сохранить файл, а потом его открыть в другой базе.
19 grigoriy-1c
 
08.05.15
21:11
Док2=Документы.СтопЛист();
Вы забыли обратиться к самому документу, надо, видимо, так:
Док2 = Документы.ВыдачаПропускаПосетителю.СтопЛист();
Метод то  где определен?
Старый документ можно не удалять, а пометить на удаление таким же методом
Док1.ПометитьНаУдаление();
20 grigoriy-1c
 
08.05.15
21:15
Что касается создания нового документа, то либо методом копировать, если создается идентичный документ, либо можно в процедуре обработке заполнения создаваемого документа прописать алгоритм создания из исходного, далее создавать документ и вызывать метод "Заполнить"...
Ошибка? Это не ошибка, это системная функция.