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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
#1

Программное создание документа в цикле по строкам ТЗ - 1С/1C 7.x

19.11.2013, 11:32. Просмотров 2505. Ответов 22
Метки нет (Все метки)

Помогите пожалуйста...делаю создание документов таким образом:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура ОткрытьЗадание()
    Воп = Вопрос("Вы точно хотите создать задание?", "Да+Нет");
    Если Воп = "Да" Тогда
 ТЗРешили.ВыбратьСтроки();
        Пока ТЗРешили.ПолучитьСтроку() = 1 Цикл
           Задан = СоздатьОбъект("Документ.Задание");
           Задан.Новый();
           Задан.Номер = "Пл-"+СокрЛП(НомерДок);
           Задан.Подразделение = СокрЛП(Подразделение);
           Задан.Записать();
        КонецЦикла;
    Иначе
        Возврат;
    КонецЕсли;
КонецПроцедуры // ОткрытьЗадание
подскажите как сделать так чтобы если в ТЗРЕШИЛИ есть одинаковые Значения по определенной колонке, то не создавалось новый документ, а до записывалась в один из них...т.е. есть колонка ТекстРаздела иИсполнитель, нужно чтобы если встречаются строки с одним Исполнителем, то это все в одном документе, а так все разные документы!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2013, 11:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос 1C 7.x Программное создание документа в цикле по строкам ТЗ (1С):

Программное создание документа - 1С
Доброго времени суток! Господа, подскажите, как при программном создании документа выставить ему правильный номер и организацию? ...

Программное создание номенклатуры - 1С
доброго времени суток. нужно программно создать Элемент номенклатуры,подключаюсь к 1с из делфи, через OLE. 1с 7.7 конфигурация на основе...

1C 8.x Программное создание элементов справочника Характеристики Номенклатуры - 1С
Народ, столкнулся с такой проблемой: Работаю с УПП. Выпускаемая продукция каждый раз может быть разного цвета. Причём цвет может быть и...

Создание документа - 1С
Создать документ, при проведении которого клиенту должен создаваться новый вклад заданного типа. Прописала код на 1С версии 7.7: ...

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

1C 8.x (тонкий) Программное создание документа - 1С
В общем необходимо было в ТЧ обработки выгрузить данные по номенклатуре из Реализации Т и У потом создать новый документ...

22
прг
5 / 5 / 1
Регистрация: 11.11.2013
Сообщений: 26
26.11.2013, 16:04 #16
Цитата Сообщение от shiro93 Посмотреть сообщение
как сделать так чтобы если в ТЗРЕШИЛИ есть одинаковые Значения по определенной колонке, то не создавалось новый документ, а до записывалась в один из них...
Цитата Сообщение от shiro93 Посмотреть сообщение
а мне нужнго при создании, а те которые уже были доки вообще не трогать
Что-то условия какие-то противоречивые - сначала одно писали, а потом наоборот? Выражайтесь яснее.
0
shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
26.11.2013, 16:06  [ТС] #17
Цитата Сообщение от прг Посмотреть сообщение
Что-то условия какие-то противоречивые - сначала одно писали, а потом наоборот? Выражайтесь яснее.
я в самом начале написал проблему, что ПРИ создании дока мне нужно чтобы дописывались строки по условию, если есть одинаковые в ТЗРешили...что можно сделать?
0
shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
28.11.2013, 16:17  [ТС] #18
Цитата Сообщение от shiro93 Посмотреть сообщение
я в самом начале написал проблему, что ПРИ создании дока мне нужно чтобы дописывались строки по условию, если есть одинаковые в ТЗРешили...что можно сделать?
кто нибудь может что-то подсказать?
0
Xomych
28.11.2013, 16:22
  #19

Не по теме:

Подсказываю. Завязывай с программированием, не твоё это.

0
shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
28.11.2013, 16:28  [ТС] #20
Цитата Сообщение от Xomych Посмотреть сообщение

Не по теме:

Подсказываю. Завязывай с программированием, не твоё это.

Не по теме:

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

0
shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
02.12.2013, 13:50  [ТС] #21
Может кому-то пригодится или есть карявости какие-то подсказывайте пожалуйста...я решил свою проблему вот так
Способом выгрузки из одной ТЗРешили в 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
ТЗРешили.Выгрузить(ТЗЗ);
    ТЗЗ.Выгрузить(ТЗ1);
    ТЗ1.УдалитьСтроки();
    ТЗЗ.ВыбратьСтроки();
    Пока ТЗЗ.ПолучитьСтроку() = 1 Цикл
        Номер = 1;
                    ТЗР = СокрЛП(ТЗЗ.Исполнитель);
                    Пока Номер <= ТЗЗ.КоличествоСтрок() Цикл
                        Если ТЗЗ.НомерСтроки = Номер Тогда
                            Номер=Номер+1;
                            Продолжить; 
                        КонецЕсли;
                        ЗначениеЯчейки = ТЗЗ.ПолучитьЗначение(Номер,"Исполнитель");
                        Текст = ТЗЗ.ПолучитьЗначение(Номер,"ТекстРаздела");
                            Если СокрЛП(ТЗЗ.Исполнитель) = СокрЛП(ЗначениеЯчейки) Тогда
                                Стр = ТЗ1.НоваяСтрока();
                                ТЗ1.УстановитьЗначение(Стр,"Исполнитель",ЗначениеЯчейки);
                                ТЗ1.УстановитьЗначение(Стр,"ТекстРаздела",Текст);
                                ТЗЗ.УдалитьСтроку(Номер);
                                
                            Иначе
                                Номер=Номер+1;
                            КонецЕсли;
    
                        КонецЦикла;
    
        
                
    КонецЦикла;
        ТЗЗ.ВыбратьСтроки();
        Пока ТЗЗ.ПолучитьСтроку() = 1 Цикл
            Задан.Новый();
            //Задан.Номер = "Пл-"+СокрЛП(НомерДок)+"-"+СокрЛП(ТЗРешили.ПорядковыйНомер);
            Задан.Подразделение = СокрЛП(ТЗЗ.Исполнитель.Подразделение);
            Задан.НоваяСтрока();
            Задан.Ответственный = ТЗЗ.Исполнитель;
            Задан.ТекстРаздела = ТЗЗ.ТекстРаздела;
            Задан.Срок = ТЗЗ.Срок;
            Задан.СрокСтрока = ТЗЗ.СрокСтрока;
            Ст="";
            Если ТЗ1.НайтиЗначение(Задан.Ответственный,Ст,"Исполнитель") = 1 Тогда
                Отв = ТЗ1.ПолучитьЗначение(Ст,"Исполнитель");
                Задан.НоваяСтрока();
                Задан.Ответственный = Отв;
                Задан.ТекстРаздела = ТЗ1.ПолучитьЗначение(Ст,"ТекстРаздела");
                //Задан.Срок = ;
                //Задан.СрокСтрока = ;
            КонецЕсли;
            Задан.Записать();
            КонецЦикла;
0
duk337
02.12.2013, 14:02
  #22

Не по теме:

"Для бешеного наношушпанчика полтора миллиметра не крюк"

0
shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
02.12.2013, 15:56  [ТС] #23
Цитата Сообщение от shiro93 Посмотреть сообщение
Может кому-то пригодится или есть карявости какие-то подсказывайте пожалуйста...я решил свою проблему вот так
Способом выгрузки из одной ТЗРешили в 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
ТЗРешили.Выгрузить(ТЗЗ);
    ТЗЗ.Выгрузить(ТЗ1);
    ТЗ1.УдалитьСтроки();
    ТЗЗ.ВыбратьСтроки();
    Пока ТЗЗ.ПолучитьСтроку() = 1 Цикл
        Номер = 1;
                    ТЗР = СокрЛП(ТЗЗ.Исполнитель);
                    Пока Номер <= ТЗЗ.КоличествоСтрок() Цикл
                        Если ТЗЗ.НомерСтроки = Номер Тогда
                            Номер=Номер+1;
                            Продолжить; 
                        КонецЕсли;
                        ЗначениеЯчейки = ТЗЗ.ПолучитьЗначение(Номер,"Исполнитель");
                        Текст = ТЗЗ.ПолучитьЗначение(Номер,"ТекстРаздела");
                            Если СокрЛП(ТЗЗ.Исполнитель) = СокрЛП(ЗначениеЯчейки) Тогда
                                Стр = ТЗ1.НоваяСтрока();
                                ТЗ1.УстановитьЗначение(Стр,"Исполнитель",ЗначениеЯчейки);
                                ТЗ1.УстановитьЗначение(Стр,"ТекстРаздела",Текст);
                                ТЗЗ.УдалитьСтроку(Номер);
                                
                            Иначе
                                Номер=Номер+1;
                            КонецЕсли;
    
                        КонецЦикла;
    
        
                
    КонецЦикла;
        ТЗЗ.ВыбратьСтроки();
        Пока ТЗЗ.ПолучитьСтроку() = 1 Цикл
            Задан.Новый();
            //Задан.Номер = "Пл-"+СокрЛП(НомерДок)+"-"+СокрЛП(ТЗРешили.ПорядковыйНомер);
            Задан.Подразделение = СокрЛП(ТЗЗ.Исполнитель.Подразделение);
            Задан.НоваяСтрока();
            Задан.Ответственный = ТЗЗ.Исполнитель;
            Задан.ТекстРаздела = ТЗЗ.ТекстРаздела;
            Задан.Срок = ТЗЗ.Срок;
            Задан.СрокСтрока = ТЗЗ.СрокСтрока;
            Ст="";
            Если ТЗ1.НайтиЗначение(Задан.Ответственный,Ст,"Исполнитель") = 1 Тогда
                Отв = ТЗ1.ПолучитьЗначение(Ст,"Исполнитель");
                Задан.НоваяСтрока();
                Задан.Ответственный = Отв;
                Задан.ТекстРаздела = ТЗ1.ПолучитьЗначение(Ст,"ТекстРаздела");
                //Задан.Срок = ;
                //Задан.СрокСтрока = ;
            КонецЕсли;
            Задан.Записать();
            КонецЦикла;
Только лучше не через найтизначение, а по выборке строк в ТЗ
0
02.12.2013, 15:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 15:56
Привет! Вот еще темы с ответами:

1C 8.x Программное создание документа Приходная накладная - 1С
так навскидку может кто скажет... создал программно документ Приходная накладная, все визуальные поля и те на что ругался при проведении...

1C 8.x Программное создание документа Требование-накладная - 1С
доброго утра ! создаю программно требование-накладную на основании документа ПоступлениеТоваровУслуг если сделать так : ...

1C 8.x Программное проведение документа - 1С
Привет. Пишу такой код для программного проведения документа(обработку пишу): &amp;НаСервере Процедура ПроведениеДок(Команда) ...

Программное переоткрытие документа - VBA
Суть в том, что надо с помощью VBA закрыть и открыть заново один и тот же документ. Если это пытаться сделать из встроенного в документ...


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

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

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