Форум программистов, компьютерный форум, киберфорум
1С
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
1C 7.x

ПечатнаяФорма анализ

20.11.2013, 17:12. Показов 2158. Ответов 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
    ТЗРешили.Выгрузить(ТЗ1);
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку() = 1 Цикл
        Должн.ВыбратьЭлементы();
        Пока Должн.ПолучитьЭлемент() = 1 Цикл
            Если СокрЛП(Должн.Код) = "1" Тогда
                Если СокрЛП(Должн.Руководитель.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулРуководителя;
                ИначеЕсли СокрЛП(Должн.ФинДиректор.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулФинДиректора;
                ИначеЕсли СокрЛП(Должн.КоммерчДиректор.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулДиректораКоммер;
                ИначеЕсли СокрЛП(Должн.ЗамФинДиректора.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулЗамаФинДиректора;
                ИначеЕсли (Лев(СокрЛП(ТЗ1.Исполнитель.Должность),9) = "Начальник") Тогда
                    Ответственный = Лев(СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт),9)+" "+Склонение.GetAppointmentPadeg(СокрЛП(ТЗ1.Исполнитель.Подразделение),2);
                ИначеЕсли (Лев(СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт),28) = "Заместитель  начальника цеха") или (СокрЛП(ТЗ1.Исполнитель.Должность) = "Заместитель начальника цеха") Тогда
                    Ответственный = СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт)+" ("+Склонение.GetAppointmentPadeg(СокрЛП(ТЗ1.Исполнитель.Подразделение),2)+")";
                Иначе
                    Ответственный = ТЗ1.Исполнитель.ДолжностьФакт;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        Если (ПустоеЗначение(ТЗ1.Срок) = 0) и (ПустоеЗначение(ТЗ1.СрокСтрока) = 1) Тогда
            СрокВывод = "Срок: "+ТЗ1.Срок;
        ИначеЕсли (ПустоеЗначение(ТЗ1.Срок) = 1) и (ПустоеЗначение(ТЗ1.СрокСтрока) = 0) Тогда
            СрокВывод = "Срок: "+ТЗ1.СрокСтрока;
        Иначе
            СрокВывод = "";
        КонецЕсли;
        Номер = 1;
        Список = СоздатьОбъект("СписокЗначений");
        Пока Номер <= ТЗ1.КоличествоСтрок() Цикл
            Если ТЗ1.НомерСтроки = Номер Тогда
                Номер=Номер+1;
                Продолжить; 
            КонецЕсли;
            ЗначениеЯчейки = ТЗ1.ПолучитьЗначение(Номер,"ТекстРаздела");
            Если ТЗ1.ТекстРаздела = ЗначениеЯчейки Тогда
                ТЗРИ = ТЗ1.ПолучитьЗначение(Номер,"Исполнитель");
                Должн.ВыбратьЭлементы();
                Пока Должн.ПолучитьЭлемент() = 1 Цикл
                    Если СокрЛП(Должн.Код) = "1" Тогда
                        Если СокрЛП(Должн.Руководитель.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулРуководителя;
                        ИначеЕсли СокрЛП(Должн.ФинДиректор.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулФинДиректора;
                        ИначеЕсли СокрЛП(Должн.КоммерчДиректор.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулДиректораКоммер;
                        ИначеЕсли СокрЛП(Должн.ЗамФинДиректора.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулЗамаФинДиректора;
                        ИначеЕсли (Лев(СокрЛП(ТЗРИ.Должность),9) = "Начальник") Тогда
                            Должность = Лев(СокрЛП(ТЗРИ.ДолжностьФакт),9)+" "+Склонение.GetAppointmentPadeg(СокрЛП(ТЗРИ.Подразделение),2);
                        ИначеЕсли (Лев(СокрЛП(ТЗРИ.ДолжностьФакт),28) = "Заместитель  начальника цеха") или (СокрЛП(ТЗРИ.Должность) = "Заместитель начальника цеха") Тогда
                            Должность = СокрЛП(ТЗРИ.ДолжностьФакт)+" ("+Склонение.GetAppointmentPadeg(СокрЛП(ТЗРИ.Подразделение),2)+")";
                        Иначе
                            Должность = ТЗРИ.Должность;
                        КонецЕсли;
                    КонецЕсли;
                КонецЦикла;
                ТЗР = СокрЛП(ТЗР)+"; "+СокрЛП(Должность)+" "+СокрЛП(ТЗРИ);
                ТЗ1.УдалитьСтроку(Номер);
            Иначе
                Номер=Номер+1;
                ТЗР = СокрЛП(ТЗ1.Исполнитель);
            КонецЕсли;
        КонецЦикла;
        
        Таб.ВывестиСекцию("Решили");
    КонецЦикла;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2013, 17:12
Ответы с готовыми решениями:

ПечатнаяФорма
Здравствуйте. Вопрос: как сделать чтобы в печатной форме выводились сотрудник за сотрудниками, а не создавалась новая печатная форма по...

Анализ ценных бумаг (построить Гистограмму и провести анализ)
Здравствуйте! Помогите пожалуйста разобраться с заданием. Для исходных данных нужно определить влияние даты покупки ценной бумаги...

Анализ сетевого трафика используя регрессионный анализ
Не знал, куда написать, MatLAb очень близок этому инструменту (Weka) Многие в курсе, что из сетевого пакета можно достать 41 атрибут для...

21
212 / 185 / 32
Регистрация: 24.10.2011
Сообщений: 763
21.11.2013, 15:01
Студворк — интернет-сервис помощи студентам
Тогда так.
Кликните здесь для просмотра всего текста

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
ТЗРешили.Выгрузить(ТЗ1);
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку() = 1 Цикл
        Должн.ВыбратьЭлементы();
        Пока Должн.ПолучитьЭлемент() = 1 Цикл
            Если СокрЛП(Должн.Код) = "1" Тогда
                Если СокрЛП(Должн.Руководитель.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулРуководителя;
                ИначеЕсли СокрЛП(Должн.ФинДиректор.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулФинДиректора;
                ИначеЕсли СокрЛП(Должн.КоммерчДиректор.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулДиректораКоммер;
                ИначеЕсли СокрЛП(Должн.ЗамФинДиректора.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулЗамаФинДиректора;
                ИначеЕсли (Лев(СокрЛП(ТЗ1.Исполнитель.Должность),9) = "Начальник") Тогда
                    Ответственный = Лев(СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт),9)+" "+Склонение.GetAppointmentPadeg(СокрЛП(ТЗ1.Исполнитель.Подразделение),2);
                ИначеЕсли (Лев(СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт),28) = "Заместитель  начальника цеха") или (СокрЛП(ТЗ1.Исполнитель.Должность) = "Заместитель начальника цеха") Тогда
                    Ответственный = СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт)+" ("+Склонение.GetAppointmentPadeg(СокрЛП(ТЗ1.Исполнитель.Подразделение),2)+")";
                Иначе
                    Ответственный = ТЗ1.Исполнитель.ДолжностьФакт;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        Если (ПустоеЗначение(ТЗ1.Срок) = 0) и (ПустоеЗначение(ТЗ1.СрокСтрока) = 1) Тогда
            СрокВывод = "Срок: "+ТЗ1.Срок;
        ИначеЕсли (ПустоеЗначение(ТЗ1.Срок) = 1) и (ПустоеЗначение(ТЗ1.СрокСтрока) = 0) Тогда
            СрокВывод = "Срок: "+ТЗ1.СрокСтрока;
        Иначе
            СрокВывод = "";
        КонецЕсли;
        Номер = 1;
        Список = СоздатьОбъект("СписокЗначений");
        ТЗР = СокрЛП(ТЗ1.Исполнитель);
        Пока Номер <= ТЗ1.КоличествоСтрок() Цикл
            Если ТЗ1.НомерСтроки = Номер Тогда
                Номер=Номер+1;
                Продолжить; 
            КонецЕсли;
            ЗначениеЯчейки = ТЗ1.ПолучитьЗначение(Номер,"ТекстРаздела");
            Если ТЗ1.ТекстРаздела = ЗначениеЯчейки Тогда
                ТЗРИ = ТЗ1.ПолучитьЗначение(Номер,"Исполнитель");
                Должн.ВыбратьЭлементы();
                Пока Должн.ПолучитьЭлемент() = 1 Цикл
                    Если СокрЛП(Должн.Код) = "1" Тогда
                        Если СокрЛП(Должн.Руководитель.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулРуководителя;
                        ИначеЕсли СокрЛП(Должн.ФинДиректор.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулФинДиректора;
                        ИначеЕсли СокрЛП(Должн.КоммерчДиректор.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулДиректораКоммер;
                        ИначеЕсли СокрЛП(Должн.ЗамФинДиректора.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулЗамаФинДиректора;
                        ИначеЕсли (Лев(СокрЛП(ТЗРИ.Должность),9) = "Начальник") Тогда
                            Должность = Лев(СокрЛП(ТЗРИ.ДолжностьФакт),9)+" "+Склонение.GetAppointmentPadeg(СокрЛП(ТЗРИ.Подразделение),2);
                        ИначеЕсли (Лев(СокрЛП(ТЗРИ.ДолжностьФакт),28) = "Заместитель  начальника цеха") или (СокрЛП(ТЗРИ.Должность) = "Заместитель начальника цеха") Тогда
                            Должность = СокрЛП(ТЗРИ.ДолжностьФакт)+" ("+Склонение.GetAppointmentPadeg(СокрЛП(ТЗРИ.Подразделение),2)+")";
                        Иначе
                            Должность = ТЗРИ.Должность;
                        КонецЕсли;
                    КонецЕсли;
                КонецЦикла;
                ТЗР = СокрЛП(ТЗР)+"; "+СокрЛП(Должность)+" "+СокрЛП(ТЗРИ);
                ТЗ1.УдалитьСтроку(Номер);
            Иначе
                Номер=Номер+1;
            КонецЕсли;
        КонецЦикла;
        
        Таб.ВывестиСекцию("Решили");
    КонецЦикла;


PS
тьфу, из внутреннего цикла вынуть надо.
1
 Аватар для shiro93
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 199
21.11.2013, 15:48  [ТС]
Цитата Сообщение от Volexovich Посмотреть сообщение
Тогда так.
Кликните здесь для просмотра всего текста

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
ТЗРешили.Выгрузить(ТЗ1);
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку() = 1 Цикл
        Должн.ВыбратьЭлементы();
        Пока Должн.ПолучитьЭлемент() = 1 Цикл
            Если СокрЛП(Должн.Код) = "1" Тогда
                Если СокрЛП(Должн.Руководитель.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулРуководителя;
                ИначеЕсли СокрЛП(Должн.ФинДиректор.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулФинДиректора;
                ИначеЕсли СокрЛП(Должн.КоммерчДиректор.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулДиректораКоммер;
                ИначеЕсли СокрЛП(Должн.ЗамФинДиректора.Получить()) = СокрЛП(ТЗ1.Исполнитель) Тогда
                    Ответственный = Должн.ТитулЗамаФинДиректора;
                ИначеЕсли (Лев(СокрЛП(ТЗ1.Исполнитель.Должность),9) = "Начальник") Тогда
                    Ответственный = Лев(СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт),9)+" "+Склонение.GetAppointmentPadeg(СокрЛП(ТЗ1.Исполнитель.Подразделение),2);
                ИначеЕсли (Лев(СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт),28) = "Заместитель  начальника цеха") или (СокрЛП(ТЗ1.Исполнитель.Должность) = "Заместитель начальника цеха") Тогда
                    Ответственный = СокрЛП(ТЗ1.Исполнитель.ДолжностьФакт)+" ("+Склонение.GetAppointmentPadeg(СокрЛП(ТЗ1.Исполнитель.Подразделение),2)+")";
                Иначе
                    Ответственный = ТЗ1.Исполнитель.ДолжностьФакт;
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        Если (ПустоеЗначение(ТЗ1.Срок) = 0) и (ПустоеЗначение(ТЗ1.СрокСтрока) = 1) Тогда
            СрокВывод = "Срок: "+ТЗ1.Срок;
        ИначеЕсли (ПустоеЗначение(ТЗ1.Срок) = 1) и (ПустоеЗначение(ТЗ1.СрокСтрока) = 0) Тогда
            СрокВывод = "Срок: "+ТЗ1.СрокСтрока;
        Иначе
            СрокВывод = "";
        КонецЕсли;
        Номер = 1;
        Список = СоздатьОбъект("СписокЗначений");
        ТЗР = СокрЛП(ТЗ1.Исполнитель);
        Пока Номер <= ТЗ1.КоличествоСтрок() Цикл
            Если ТЗ1.НомерСтроки = Номер Тогда
                Номер=Номер+1;
                Продолжить; 
            КонецЕсли;
            ЗначениеЯчейки = ТЗ1.ПолучитьЗначение(Номер,"ТекстРаздела");
            Если ТЗ1.ТекстРаздела = ЗначениеЯчейки Тогда
                ТЗРИ = ТЗ1.ПолучитьЗначение(Номер,"Исполнитель");
                Должн.ВыбратьЭлементы();
                Пока Должн.ПолучитьЭлемент() = 1 Цикл
                    Если СокрЛП(Должн.Код) = "1" Тогда
                        Если СокрЛП(Должн.Руководитель.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулРуководителя;
                        ИначеЕсли СокрЛП(Должн.ФинДиректор.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулФинДиректора;
                        ИначеЕсли СокрЛП(Должн.КоммерчДиректор.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулДиректораКоммер;
                        ИначеЕсли СокрЛП(Должн.ЗамФинДиректора.Получить()) = СокрЛП(ТЗРИ) Тогда
                            Должность = Должн.ТитулЗамаФинДиректора;
                        ИначеЕсли (Лев(СокрЛП(ТЗРИ.Должность),9) = "Начальник") Тогда
                            Должность = Лев(СокрЛП(ТЗРИ.ДолжностьФакт),9)+" "+Склонение.GetAppointmentPadeg(СокрЛП(ТЗРИ.Подразделение),2);
                        ИначеЕсли (Лев(СокрЛП(ТЗРИ.ДолжностьФакт),28) = "Заместитель  начальника цеха") или (СокрЛП(ТЗРИ.Должность) = "Заместитель начальника цеха") Тогда
                            Должность = СокрЛП(ТЗРИ.ДолжностьФакт)+" ("+Склонение.GetAppointmentPadeg(СокрЛП(ТЗРИ.Подразделение),2)+")";
                        Иначе
                            Должность = ТЗРИ.Должность;
                        КонецЕсли;
                    КонецЕсли;
                КонецЦикла;
                ТЗР = СокрЛП(ТЗР)+"; "+СокрЛП(Должность)+" "+СокрЛП(ТЗРИ);
                ТЗ1.УдалитьСтроку(Номер);
            Иначе
                Номер=Номер+1;
            КонецЕсли;
        КонецЦикла;
        
        Таб.ВывестиСекцию("Решили");
    КонецЦикла;


PS
тьфу, из внутреннего цикла вынуть надо.
ой, спасибо большое!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2013, 15:48

анализ БД
Есть вопрос по анализу имеющейся базы. В базе есть таблица, состоящая из записей об mp3 файлах, в полях хранятся характеристики mp3 такие...

Анализ
Помогите пожалуйста написать анализ по программе для ргр. По введенному номеру музыкальной ноты вывести ее словесное наименование....

Анализ
Добрый день! Помогите кто понимает в VBA, есть файл АНАЛИЗ в нем таблица, первый столбец содержит дату, необходимо чтоб по этой дате...

Анализ ЖД
Решил разделить существующий диск на один еще диск при делении возникла какая-то ошибка(не помню уже).Решил проверить состояние диска через...

Анализ производительности
Работаю с анализом причин падения быстродействия и мне нужна помощь мощных спецов. Хочется научиться анализировать в каком случае узким...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru