Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Steven_92
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 6
1

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

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

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

Не могу понять как застить ее выбрать организацию и подразделение самостоятельно. Что нужно прописать не знаю.
Вот код:
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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2017, 11:13
Ответы с готовыми решениями:

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

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

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

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

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

12
MonteKristo
60 / 59 / 17
Регистрация: 21.08.2015
Сообщений: 250
10.01.2017, 12:01 2
Что то непонятно, сначала присваивается переменной НовыйДок - создание документа, второй строкой присваивается копирование документа, вы все-таки копируете или создаете? Если копируйте, то копируется документ со всеми реквизитами, включая организацию, я так понял нужно чтобы при копировании организация менялась?
1
Steven_92
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 6
10.01.2017, 12:08  [ТС] 3
Я копирую документы 2016 года. Меняю год на 2017. И еще мне необходимо при копировании изменить организацию. Да вы правильно думаете. Поможете?
0
MonteKristo
60 / 59 / 17
Регистрация: 21.08.2015
Сообщений: 250
10.01.2017, 13:19 4
А организация одна или несколько может быть? вариант НайтиПоКоду пробовали?
1
Volexovich
200 / 176 / 29
Регистрация: 24.10.2011
Сообщений: 703
10.01.2017, 13:32 5
Банальщина: на форму вставь поле организация, заполни и подставляй в документы.
1
Steven_92
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 6
10.01.2017, 13:38  [ТС] 6
MonteKristo, организация одна. Меня интересует как написать сам код. Я просто в 1С программировании новичок, а дело срочное.

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

Решение

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

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

Решение

Справочники
1
Steven_92
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 6
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
MonteKristo
60 / 59 / 17
Регистрация: 21.08.2015
Сообщений: 250
10.01.2017, 14:42 11
Лучший ответ Сообщение было отмечено Steven_92 как решение

Решение

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

PS Кстати, там надо пересчитывать документ после смены организации и подразделения, погляди стандартную обработку смены организации/подразделения и выполни те же действия.
1
Steven_92
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 6
10.01.2017, 18:47  [ТС] 13
MonteKristo, Спасибо. Прокатило. Вы меня спасли прям. Сам проглядел, топчусь на одном месте.
Volexovich, Да у вас вроде хороший вариант. Но я в коде 1С новичок. Максимум что осилил, то что вверху. Для меня только такой вариант прост. Спасибо за Сообщение. Позще попробую как у вас сделать для саморазвития.
0
10.01.2017, 18:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2017, 18:47

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

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

Внешняя обработка
1С Предприятие 8.2 Как из внешней обработки создать элемент в корень какого-нибудь справочника? (В...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru