Форум программистов, компьютерный форум, киберфорум
Наши страницы

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
Steven_92
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 6
#1

1C 8.x Внешняя обработка для копирования документов - 1С

10.01.2017, 11:13. Просмотров 379. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 1C 8.x Внешняя обработка для копирования документов (1С):

1C 8.x Внешняя обработка - 1С
Здравствуйте! как из формы внешней обработки сформировать типовой отчет и передать необходимые параметры ?

Внешняя обработка - 1С
Всем привет! Помогите пожалуйста составить такой вот код - (перебирает целые числа от 0 до бесконечности и выводит на экран те, которые...

Внешняя обработка - 1С
Нужно создать внешнюю обработку. Ввести в поле ввода дату. По кнопке &quot;Сформировать&quot; получить дату, смещенную на месяц вперед. Маленькая и...

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

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

1C 8.x Внешняя обработка из Далион - 1С
Ситуация такая имеется обработка из 1С:8 далион, надо переделать в 1С:8 розницу, соответственно в рознице обработка не открывается, точнее...

12
MonteKristo
57 / 57 / 16
Регистрация: 21.08.2015
Сообщений: 238
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
57 / 57 / 16
Регистрация: 21.08.2015
Сообщений: 238
10.01.2017, 13:19 #4
А организация одна или несколько может быть? вариант НайтиПоКоду пробовали?
1
Volexovich
176 / 153 / 25
Регистрация: 24.10.2011
Сообщений: 599
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
57 / 57 / 16
Регистрация: 21.08.2015
Сообщений: 238
10.01.2017, 13:43 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
По поводу кода:
НовыйДок.Организация = Справочник.Организации.НайтиПоКоду("Тут код организации");
код организации можно посмотреть в самом справочнике.
1
Steven_92
0 / 0 / 0
Регистрация: 10.01.2017
Сообщений: 6
10.01.2017, 13:49  [ТС] #8
MonteKristo, не получается. Ругается:

{Форма.Форма.Форма(17,26)}: Переменная не определена (Справочник)
НовыйДок.Организация = <<?>>Справочник.Организации.НайтиПоКоду("000000002"); (Проверка: Толстый клиент (обычное приложение))
0
MonteKristo
57 / 57 / 16
Регистрация: 21.08.2015
Сообщений: 238
10.01.2017, 13:53 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Справочники
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
57 / 57 / 16
Регистрация: 21.08.2015
Сообщений: 238
10.01.2017, 14:42 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Справочник называется ПодразделенияОрганизаций.
То есть должно быть так
НовыйДок.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000042");
1
Volexovich
176 / 153 / 25
Регистрация: 24.10.2011
Сообщений: 599
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
Привет! Вот еще темы с ответами:

1C 8.x 1с 8.2 Не открывается внешняя обработка - 1С
Доброго времени всем! Такая беда, запускаю 1С Предприятие 8.2 УТ 11 запускаю созданную обработку, а она не открывается. Никаких ошибок,...

1C 8.x Внешняя обработка печати - 1С
Добрый день, не разу не работал со внешней обработкой печати, подскажите что не так. Работаю с УТ 10.3. Поставили мне задачу заменить...

Внешняя обработка (ЗаполнениеОбъекта) - 1С
1С 8.2 Управляемые формы Не могу понять как перехватить ссылку с документа, чтобы обработка обрабатывала выбранный документ. Пусть,...

1C 8.x Внешняя Обработка Проведенные Платежи - 1С
Здравствуйте. Суть задачи такова. Нужно сделать внешнюю обработку - Отчет о проведенных платежах За Определенный период, дата выбирается. ...


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

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

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