0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 16
1
1C 8.x

Внешняя обработка для копирования документов

10.01.2017, 11:13. Показов 7929. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте, создаю внешнюю обработку для копирования документов.

Не могу понять как застить ее выбрать организацию и подразделение самостоятельно. Что нужно прописать не знаю.
Вот код:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ВсегоДокументов = 0;
    ДокВыборка = Документы.ИнтекоДоговорОПае.Выбрать(Дата("20160101") );
    
    пока (ДокВыборка.Следующий()) и (ДокВыборка.Номер <> 0000000000000000000004318) цикл  
        
        ТекНомер = СокрЛП(ДокВыборка.Номер);
        ТекДата =  ДокВыборка.Дата;
        ВсегоДокументов = ВсегоДокументов + 1;
        
        НовыйДок = Документы.ИнтекоДоговорОПае.СоздатьДокумент();
        НовыйДок = ДокВыборка.Ссылка.Скопировать();
        НовыйДок.УстановитьНовыйНомер();
        НовыйДок.Дата = Дата("20170101");
        НовыйДок.Организация = [I][B]?????[/B][/I]
        НовыйДок.НомерДоговора = ДокВыборка.НомерДоговора;
        НовыйДок.ФизЛицо = ДокВыборка.ФизЛицо;
        НовыйДок.ПодразделениеОрганизации = [I][B]?????[/B][/I]
        НовыйДок.СрокМесяцев = 11;
        НовыйДок.ДатаНачала = Дата("20170101");
        НовыйДок.ДатаОкончания = Дата("20171201");
        НовыйДок.Записать();
        
        Сообщить("Для документа №" + ТекНомер + "; Уже " + ВсегоДокументов + " обработанно " + ТекДата);
        Сообщить("Создан документс  №" +НовыйДок.Номер + "; И датой" + НовыйДок.Дата);
        
    КонецЦикла;
 
 
КонецПроцедуры
????? - на это место нужно подобрать код.

Версия 1С: 8.2
Конфигурация: Управление сельскохозяйственным предприятием, редакция 1.3
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2017, 11:13
Ответы с готовыми решениями:

1С 8.3 Внешняя обработка "Выгрузка/Загрузка документов"
Здравствуйте! Срочно стало нужно изучить 1с. Нужно выполнить задание: внешняя обработка, форма с 2...

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

Внешняя обработка. Загрузка данных для создания заказов из CSV в 1С 8.3
Здравствуйте. Я новичок в 1С. Нужно создать обработку, которая будет формировать заказы клиента из...

1С ЗУП 3.1 Внешняя обработка печатной формы для Кадровый документ списком
Здравствуйте! Подскажите пожалуйста, кто знает, как правильно добраться до поля Сотрудник.Код (ниже...

12
75 / 71 / 21
Регистрация: 21.08.2015
Сообщений: 335
10.01.2017, 12:01 2
Что то непонятно, сначала присваивается переменной НовыйДок - создание документа, второй строкой присваивается копирование документа, вы все-таки копируете или создаете? Если копируйте, то копируется документ со всеми реквизитами, включая организацию, я так понял нужно чтобы при копировании организация менялась?
1
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 16
10.01.2017, 12:08  [ТС] 3
Я копирую документы 2016 года. Меняю год на 2017. И еще мне необходимо при копировании изменить организацию. Да вы правильно думаете. Поможете?
0
75 / 71 / 21
Регистрация: 21.08.2015
Сообщений: 335
10.01.2017, 13:19 4
А организация одна или несколько может быть? вариант НайтиПоКоду пробовали?
1
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
10.01.2017, 13:32 5
Банальщина: на форму вставь поле организация, заполни и подставляй в документы.
1
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 16
10.01.2017, 13:38  [ТС] 6
MonteKristo, организация одна. Меня интересует как написать сам код. Я просто в 1С программировании новичок, а дело срочное.

Добавлено через 59 секунд
Volexovich, документов много, это мне прийдется каждый раз выбирать организацию по форме?
0
75 / 71 / 21
Регистрация: 21.08.2015
Сообщений: 335
10.01.2017, 13:43 7
Лучший ответ Сообщение было отмечено Steven_92 как решение

Решение

По поводу кода:
НовыйДок.Организация = Справочник.Организации.НайтиПоКоду("Тут код организации");
код организации можно посмотреть в самом справочнике.
1
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 16
10.01.2017, 13:49  [ТС] 8
MonteKristo, не получается. Ругается:

{Форма.Форма.Форма(17,26)}: Переменная не определена (Справочник)
НовыйДок.Организация = <<?>>Справочник.Организации.НайтиПоКоду("000000002"); (Проверка: Толстый клиент (обычное приложение))
0
75 / 71 / 21
Регистрация: 21.08.2015
Сообщений: 335
10.01.2017, 13:53 9
Лучший ответ Сообщение было отмечено Steven_92 как решение

Решение

Справочники
1
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 16
10.01.2017, 14:34  [ТС] 10
MonteKristo, точно. Спасибо огромное

Добавлено через 2 минуты
Для будущих просматривающих. Код такой:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ВсегоДокументов = 0;
    ДокВыборка = Документы.ИнтекоДоговорОПае.Выбрать(Дата("20160101") );
    
    пока (ДокВыборка.Следующий()) и (ДокВыборка.Номер <> 000000000000000000004318) цикл  
        
        ТекНомер = СокрЛП(ДокВыборка.Номер);
        ТекДата =  ДокВыборка.Дата;
        ВсегоДокументов = ВсегоДокументов + 1;
        
        НовыйДок = Документы.ИнтекоДоговорОПае.СоздатьДокумент();
        НовыйДок = ДокВыборка.Ссылка.Скопировать();
        НовыйДок.УстановитьНовыйНомер();
        НовыйДок.Дата = Дата("20160101");
        НовыйДок.Организация = Справочники.Организации.НайтиПоКоду("000000002");
        НовыйДок.НомерДоговора = ДокВыборка.НомерДоговора;
        НовыйДок.ФизЛицо = ДокВыборка.ФизЛицо;
        НовыйДок.ПодразделениеОрганизации = Справочники.Подразделения.НайтиПоКоду("000000042");      
        НовыйДок.СрокМесяцев = 11;
        НовыйДок.ДатаНачала = Дата("20170101");
        НовыйДок.ДатаОкончания = Дата("20171201");
        НовыйДок.Записать();
        
        Сообщить("Для документа №" + ТекНомер + "; Уже " + ВсегоДокументов + " обработанно " + ТекДата);
        Сообщить("Создан документс  №" +НовыйДок.Номер + "; И датой" + НовыйДок.Дата);
        
    КонецЦикла;
 
 
КонецПроцедуры
Добавлено через 35 минут
MonteKristo, Спасибо что помогли, еще вопрос возник. С подразделением это не работает. Просто пустым оставляет и все. Наверное потому что в справочнике нет отбора по коду. Есть идеи как вписать подразделение?

Добавлено через 15 секунд
MonteKristo, Спасибо что помогли, еще вопрос возник. С подразделением это не работает. Просто пустым оставляет и все. Наверное потому что в справочнике нет отбора по коду. Есть идеи как вписать подразделение?
0
75 / 71 / 21
Регистрация: 21.08.2015
Сообщений: 335
10.01.2017, 14:42 11
Лучший ответ Сообщение было отмечено Steven_92 как решение

Решение

Справочник называется ПодразделенияОрганизаций.
То есть должно быть так
НовыйДок.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000042");
1
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
10.01.2017, 16:15 12
У тебя один отбор
1C
1
(ДокВыборка.Номер <> 4318)
, а это значит что можешь тупо на форму воткнуть поле, назвать его Организация, установить связь со справочником организации и перед запуском обработки указывать организацию вручную.
Только проверку не забудь типа
1C
1
Если Организация.Пустая() Тогда Возврат; КонецЕсли;
То же самое сделай с подразделением.

PS Кстати, там надо пересчитывать документ после смены организации и подразделения, погляди стандартную обработку смены организации/подразделения и выполни те же действия.
1
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 16
10.01.2017, 18:47  [ТС] 13
MonteKristo, Спасибо. Прокатило. Вы меня спасли прям. Сам проглядел, топчусь на одном месте.
Volexovich, Да у вас вроде хороший вариант. Но я в коде 1С новичок. Максимум что осилил, то что вверху. Для меня только такой вариант прост. Спасибо за Сообщение. Позще попробую как у вас сделать для саморазвития.
0
10.01.2017, 18:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2017, 18:47
Помогаю со студенческими работами здесь

*.ВАТник для резервного копирования документов
Кто-нить может поделиться готовым Батником для резервного копирования документов (Не только из 1с)...

Внешняя Обработка (.ert) Для Чеков
Здравсвуйте!! У нас в магазине 1С 7.7 Торговля и склад SQL 2005+ Windows Server 2003 ... Дайте...

внешняя обработка для изменения свойств номенклатуры
1С восьмерка занимаюсь совсем недавно, так что может вопрос и простой, но для меня сложный ) ...

Внешняя обработка для запуска регламентного задания
Привет всем. У меня 1С 8.2 почему глючит регламентные задания. Есть другое регламентное задание,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru