Имя: Пароль:
1C
1С v8
Помогите сделать отчет.
0 slnes
 
24.08.17
08:02
Имеем регистр сведений:
* (реквизит) №Скважины - у каждой скважины свой номер
* (реквизит) Монтаж - булево, истина - монтаж насоса на скважину, ложь - демонтаж насоса со скважины.
* (измерение) №Насоса - у каждого насоса свой номер
* (реквизит) Дата монтажа либо де монтажа
* (ресурс) Часы - количество отработанных часов в момент монтажа  

Имеются скважины, на них установленны насосы, в регистре сведений информация о перемещении насосв по скважинам.
Насос ломается ставят другой, это нужно в отчете.
Помогите сделать такой отчет.

[URL=http://radikol.ru/][IMG]http://cdn1.savepice.ru/uploads/2017/8/24/9d3736151bbdb33157f760e1b1d20e58-full.jpg[/IMG][/URL]
2 slnes
 
24.08.17
08:02
3 slnes
 
24.08.17
08:04
Не получилось вставить картинку
Модератор уберите пожалуйста ссылку в (0) и (1)
Ну или переместите (2) в (0)
4 1dvd
 
24.08.17
08:06
Запрос писать надо
5 _stay true_
 
24.08.17
08:09
06 марта 2006; Стаж: 11 лет 5 месяцев 18 дней

Это какой-то утренний троллинг?
6 mistеr
 
24.08.17
08:38
(0) Сколько платишь?
7 Segate
 
24.08.17
08:48
(0)тут надо обратится к специалисту... не иначе
8 Saari
 
24.08.17
08:52
(0) если в измерении только номер насоса, но, как мне кажется, нельзя сделать две записи в одном регистре сведений с одним значением измерения.
Структура регистра точно такая?
9 Dotoshin
 
24.08.17
08:56
(5) Почему сразу троллинг? Может он просто геодезист :)
10 slnes
 
24.08.17
08:56
(8) Регистр периодический период день.
(4) проблема в том что № скважины выводится 1 раз, а насосы несколько раз. Да ещё и каждую скважину с движениями насосов обвести надо и поставить по центу.
Через СКД вообще не знаю как такое делать.
Через табличный документ слишком много получается, тож непонятно ведь нельзя вывести номер скважины сверху, он должен быть по центру.
Я не зря картинку прилепил, нужно как на картинке
11 slnes
 
24.08.17
09:08
Так же заранее не ясно сколько будет перемещений с списке, поэтому непонятно какой делать шаблон и как его выводить.
А номер скважины и порядковый номер обязательно по центру должны быть.
12 пипец
 
24.08.17
09:11
та просто запросом с соединением нескольких таблиц
13 пипец
 
24.08.17
09:12
скд тут ваще как то - хотя на вкус и цвет , кому и карандаш фломастер (с) моё, не продается
14 пипец
 
24.08.17
09:14
ничо не понел, тоись савсем,  макет руками поправить уже тяжко что ле
15 igorPetrov
 
24.08.17
09:16
Что сложного-то?
16 slnes
 
24.08.17
09:18
Как будет выглядеть макет с именами областей?
17 пипец
 
24.08.17
09:19
видать собеседование и тестовая задача , если так ))) даж догадываюсь кудой
18 igorPetrov
 
24.08.17
09:20
(17) и?
19 пипец
 
24.08.17
09:20
какими именами ? каких областей ? ))))) конструктор отменили чтоли ?
20 пипец
 
24.08.17
09:21
(18) что и ? , есть тут некие вакансии , трубо нефтяные ))))
21 igorPetrov
 
24.08.17
09:23
Тогда, да собеседование. Но 11 лет, чем же товарищ занимался?
22 slnes
 
24.08.17
09:26
Нет не собеседование и насосы не нефтяные, а водяные.
23 Маркусс
 
24.08.17
09:27
(0) срез последних по регистру сведений кури.
лучше сразу в скд сделать
24 igorPetrov
 
24.08.17
09:27
(22) Написал отчет?
25 lodger
 
24.08.17
09:28
(21) ботов в контре гонял, вестимо.
26 slnes
 
24.08.17
09:30
(23) Срез последних выведет не все данные, вы неверно поняли задачу.
(24) нет
27 slnes
 
24.08.17
09:30
(25) тут все советчики ботов гоняли похоже
28 mistеr
 
24.08.17
09:31
(22) Зайдем с другой стороны. А какие отчеты ты делал раньше? Возьми один из них за основу.
29 Segate
 
24.08.17
09:32
(27) На спор сделаю такой отчет за час не отвлекаясь от контры в перерывах между раундами xD
30 slnes
 
24.08.17
09:34
(28) ни один из них за основу не пойдет.
Если все так просто, наверное в инете куча примеров, киньте ссылку на похожий отчет.
(29) вы попробуйте, а потом сравните с картинкой.
31 Маркусс
 
24.08.17
09:35
(26) у тебя вообще написано вывести в отчет как один насос ломается и заменяется)
32 igorPetrov
 
24.08.17
09:35
(29) +100
33 KrasnSergey
 
24.08.17
09:35
(28) человек просит помочь...., а ты хамишь
34 igorPetrov
 
24.08.17
09:36
(30) Ты просто возьми и начни делать, используй мозг, потом покажи, что получилось, а что нет.
35 Невский
 
24.08.17
09:38
(34) Ты понял в чем трабл у него? Или просто так в воздух пукаешь?
36 igorPetrov
 
24.08.17
09:39
(35) Там есть сложности?
37 пипец
 
24.08.17
09:39
ну если в конструкторе то например временную таблицу с датой , если уж не скд
38 KrasnSergey
 
24.08.17
09:39
СКД, делается по срезу последних, макет нафик не надо, группировка по строкам скажина, по колонкам монтаж, насос. Все просто
39 igorPetrov
 
24.08.17
09:41
(38) Что бы это понять, нужно просто сделать, а не пальцем в носу ковырять в ожидании подсказки.
40 пипец
 
24.08.17
09:41
хе )))) видел я кренделей пишущих запросы без всяких скд, потому что так привычно )))
41 Маркусс
 
24.08.17
09:43
(38) он уже срез последних отмёл как ложное учение
42 Segate
 
24.08.17
09:46
Отчет конечно тривиальный, но сам формат хранения данных - это просто тушите свет. Надо вырвать руки человеку который такую схему придумал.
43 slnes
 
24.08.17
09:49
(38) Прикрепленную картинку посмотрите.
В таблице срез последних нет всех перемещений насосов за весь период. Картинку посмотрите.

Нужно номер скважины вывести слева от таблицы замен, а не сверху. Вывести их по центру независимо от того сколько было перемещений.

Вывести с группировкой по скважинам я могу и в СКД и в табличный документ; вывести так чтобы в каждой строке стояла скважина тоже; а вот как на картинке сделать незнаю.

Большинство советчиков такой якобы тривиальный отчет сделать не смогут, сделайте скиньте скриншот что получилось.
44 Маркусс
 
24.08.17
09:50
(43) ну так делай без среза. бери всю таблицу
45 Невский
 
24.08.17
09:52
У него проблема с макетом а не с тем как данные выбрать.
46 Маркусс
 
24.08.17
09:55
(45) тогда уж проблема с де макетом и де отчетом)
47 Маркусс
 
24.08.17
09:55
судя по де монтажу))
48 igorPetrov
 
24.08.17
09:55
(45) С руками у него проблема. Уже сделать бы мог.
49 singlych
 
24.08.17
09:57
(0) выведи скважину в каждой строке, потом обойди табдок и объедини ячейки с одинаковыми скважинами
50 Невский
 
24.08.17
09:58
(48) Я допустим то же, сходу не могу воткнуться как так вывести на СКД. Но не считаю, что у меня с руками проблема.
51 Невский
 
24.08.17
09:58
(49) А на СКД как?
52 igorPetrov
 
24.08.17
09:59
(50) Ну, твои трудности.
53 Невский
 
24.08.17
09:59
(52) очередной пук?
54 singlych
 
24.08.17
10:00
(49) или можно сразу при выводе запоминать, потом объединить
55 Маркусс
 
24.08.17
10:01
если я правильно понял совокупность букв в (43) не может он столбики сделать монтаж и демонтаж.
56 singlych
 
24.08.17
10:01
(51) хз...
57 slnes
 
24.08.17
10:01
(49),(54) вот это подходит, дайте пример я объединять не умею.
58 igorPetrov
 
24.08.17
10:02
(57) Капец.
59 Маркусс
 
24.08.17
10:02
(53) там помошник есть при формировании выходной формы. вообще ничего сложного
60 igorPetrov
 
24.08.17
10:02
(53) Просто зачем ты этим гордишься?
61 Невский
 
24.08.17
10:04
(60) Я не горжусь. Просто сказал, что не знаю как такой вывод сделать на СКД, вот и все. Если знаешь просвети. Если нет иди куда шел.
62 singlych
 
24.08.17
10:05
(57)
ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)
Объединить (Merge)
Синтаксис:

Объединить()
Описание:

Объединяет ячейки области.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:

Область = ТабДок.Область(2,2,3,3);
Область.Объединить();
63 KrasnSergey
 
24.08.17
10:05
(43) бери всю таблицу как уже советовали, по колонкам группируй монтаж, насосы даты в детализацию...
64 igorPetrov
 
24.08.17
10:06
(61) Ты здесь начальник или швейцар?
65 Невский
 
24.08.17
10:07
(64) свободен
66 igorPetrov
 
24.08.17
10:08
(65) Грозный какой, точно швейцар.
67 singlych
 
24.08.17
10:08
А все же интересно, можно ли это сделать в СКД?
68 KrasnSergey
 
24.08.17
10:09
(67) легко
69 singlych
 
24.08.17
10:10
(68) расскажи
70 mistеr
 
24.08.17
10:10
Пожалуй, отчет действительно не тривиальный. Без СКД будет проще. Ключевые моменты:

* правильная сортировка и группировка в запросе
* правильный обход выборки
* объединение ячеек
71 пипец
 
24.08.17
10:14
хмм либо все семерку забыли, либо одно из двух )))
72 mistеr
 
24.08.17
10:15
(57) После вывода очередной области запоминай ее координаты. Например, вывел первую строку по данной скважине - запомнил номер строки табдока. Вывел последнюю - вычислил область для объединения.
73 igorPetrov
 
24.08.17
10:16
(72) Он не умеет объединять.
74 slnes
 
24.08.17
10:18
Тут ещё проблема, как объвести толстой линией группы перемещений как на прикрепленной картинке. Т.е. перемещения каждого насоса толстая граница.
75 Segate
 
24.08.17
10:19
http://cdn1.savepice.ru/uploads/2017/8/24/73ad1b379d7531c2853105d21d1bfa21-full.png

Создание с нуля регистра, заполнение какими-то данными, написание отчета, и вывод - ровно 7.5 минут. Еще минуты 2 надо на то чтоб нарисовать макет, чтоб появились надписи монтаж и демонтаж. Раз уж ты скрин просил
76 singlych
 
24.08.17
10:24
(74) В СП посмотри, там рядом с Объединить есть Обвести.
77 slnes
 
24.08.17
10:24
(75) такой отчет я тож могу сделать легко, на картинку посмотрите и найдите 100 отличий. Первое я вам подскажу у вас номер скважины выводится сверху, а надо слева
78 Segate
 
24.08.17
10:26
(77) не вижу ни одного ) Обвести рамочкой или перекинуть скважину из группировки в детальные записи - дело 30 секунд. И я сейчас говоря 30 секунд имею ввиду 30 секунд. В сумме, вы делаете отчет который делается за 15 минут рабочего времени уже 2.5 часа и ни на йоту не приблизились к решению, как я погляжу. мне жаль вашего работодателя.
79 Rokford
 
24.08.17
10:33
ответ в (49)
Вот тут пример с постобработкой табличного документа.
СКД - свернуть шапку. Через макет получается только фиксированная шапка.
(в интернете давно бы уже нашел что-то подобное).
80 slnes
 
24.08.17
10:38
(78) вы попробуйте, пока что вы не справились.
Как получится пишите, до этого не надо
81 Segate
 
24.08.17
10:38
(79)да он бы уже и без скд давно бы написал через обход по группировкам и жесткий макет, и через скд, и левой пяткой в экселе бы этот отчет накидал, но он ждет, пока кто нть выложит текст готового решения видимо. и инструкцию как это повторить на 17 листах с картинками.
82 KrasnSergey
 
24.08.17
10:40
(81) текста не будет, надо взять учебник прочитать эту страницу и 30 мин раб времени ИМХО
83 KrasnSergey
 
24.08.17
10:41
или ему каждый следующий отчет надо будет просить текст на мисте
84 mistеr
 
24.08.17
10:41
(74) Я вижу только строки по скважинам обведенные. Нарисуй получше. Цветом, например.
85 slnes
 
24.08.17
10:42
(84) это я и имел ввиду
86 mistеr
 
24.08.17
10:44
(85) Это решается отдельными областями в макете для первой/последней строки.
87 igorPetrov
 
24.08.17
10:50
(81) +100. Можно было уже пять раз за это время нарисовать макет и ручками его заполнить из запроса, ждет халявы )))
88 Segate
 
24.08.17
10:52
(80)http://cdn1.savepice.ru/uploads/2017/8/24/9a675ffcfb32d6fff5b06ce0cf667cfa-full.png

Вот, передай своему начальнику, что я сделал то что ему надо и готов взять их контору на аутсорс. это ему будет явно дешевле чем содержать тебя. )))
89 igorPetrov
 
24.08.17
10:54
(88) Ща будет код просить.
90 Маркусс
 
24.08.17
10:56
(80) Барин, в ютубе море роликов с разбором работы запросов и скд.
91 Saari
 
24.08.17
10:57
Получилось сделать так:

    ТЗД = Новый ТаблицаЗначений;
    ТЗД.Колонки.Добавить("НомерСкважины");
    ТЗД.Колонки.Добавить("ДНомерНасоса");
    ТЗД.Колонки.Добавить("ДДатаМД");
    ТЗД.Колонки.Добавить("ДЧасы");
    
    ТЗМ = Новый ТаблицаЗначений;
    ТЗМ.Колонки.Добавить("НомерСкважины");
    ТЗМ.Колонки.Добавить("МНомерНасоса");
    ТЗМ.Колонки.Добавить("МДатаМД");
    ТЗМ.Колонки.Добавить("МЧасы");
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("НомерСкважины");
    ТЗ.Колонки.Добавить("ДНомерНасоса");
    ТЗ.Колонки.Добавить("ДДатаМД");
    ТЗ.Колонки.Добавить("ДЧасы");
    ТЗ.Колонки.Добавить("МНомерНасоса");
    ТЗ.Колонки.Добавить("МДатаМД");
    ТЗ.Колонки.Добавить("МЧасы");
    
    
    Запрос = Новый Запрос;
    
    Запрос.Текст = "ВЫБРАТЬ
        |Насосы.НомерСкважины,
        |Насосы.Монтаж,
        |Насосы.НомерНасоса,
        |Насосы.ДатаМонтажаДемонтажа КАК ДатаМД,
        |Насосы.Часы
        |
        |ИЗ
        |РегистрСведений.Насосы КАК Насосы
        |
        |СГРУППИРОВАТЬ ПО
        |    Насосы.НомерСкважины,
        |    Насосы.Монтаж,
        |    Насосы.НомерНасоса,
        |    Насосы.ДатаМонтажаДемонтажа,
        |    Насосы.Часы
        |";
        
    ЗапросТЗ = Запрос.Выполнить().Выгрузить();
    
    ЗапросТЗ.Сортировать("НомерСкважины Возр, Монтаж Возр, ДатаМД Возр");
    
    Для Каждого Стр Из ЗапросТЗ Цикл
        
        Если НЕ Стр.Монтаж Тогда
            НЗ = ТЗД.Добавить();
            НЗ.НомерСкважины = Стр.НомерСкважины;
            НЗ.ДНомерНасоса = Стр.НомерНасоса;
            НЗ.ДДатаМД = Стр.ДатаМД;
            НЗ.ДЧасы = Стр.Часы;
        КонецЕсли;
        
        Если Стр.Монтаж Тогда
            НЗ = ТЗМ.Добавить();
            НЗ.НомерСкважины = Стр.НомерСкважины;
            НЗ.МНомерНасоса = Стр.НомерНасоса;
            НЗ.МДатаМД = Стр.ДатаМД;
            НЗ.МЧасы = Стр.Часы;
        КонецЕсли;
        
    КонецЦикла;
    ТЗД.Сортировать("НомерСкважины Возр, ДДатаМД Возр");
    ТЗМ.Сортировать("НомерСкважины Возр, МДатаМД Возр");
        
    ТабСкважины = ЗапросТЗ.Скопировать();
    ТабСкважины.Свернуть("НомерСкважины");
    
    
    Для Каждого Стр Из ТабСкважины Цикл
        
        Отбор = Новый Структура();
        Отбор.Вставить("НомерСкважины", Стр.НомерСкважины);
        РезультатОтбораД = ТЗД.НайтиСтроки(Отбор);
        РезультатОтбораМ = ТЗМ.НайтиСтроки(Отбор);
        КоличествоСтрокОтбораД = РезультатОтбораД.Количество();
        КоличествоСтрокОтбораМ = РезультатОтбораМ.Количество();
        КоличествоСтрокОтбора = Макс(КоличествоСтрокОтбораД, КоличествоСтрокОтбораМ);
        Для инд = 0 По КоличествоСтрокОтбора - 1 Цикл
            НЗ = ТЗ.Добавить();
            НЗ.НомерСкважины = РезультатОтбораД[инд].НомерСкважины;
            НЗ.ДНомерНасоса = РезультатОтбораД[инд].ДНомерНасоса;
            НЗ.ДДатаМД = РезультатОтбораД[инд].ДДатаМД;
            НЗ.ДЧасы = РезультатОтбораД[инд].ДЧасы;
            НЗ.МНомерНасоса = РезультатОтбораМ[инд].МНомерНасоса;
            НЗ.МДатаМД = РезультатОтбораМ[инд].МДатаМД;
            НЗ.МЧасы = РезультатОтбораМ[инд].МЧасы;
        КонецЦикла;
        
    КонецЦикла;
    
    
    //Вывод данных
    ТабДокумент = Новый ТабличныйДокумент;
    Макет        = ПолучитьМакет("НашМакетАренда");
    ОблШапка     = Макет.ПолучитьОбласть("Шапка");
    ОблДанные    = Макет.ПолучитьОбласть("Данные");
    
    ТабДокумент.Вывести(ОблШапка);
    
    Ном = 1;
    СтарыйНомерСкважины = "~~~";
    Для Каждого Стр Из ТЗ Цикл
        
        ОблДанные.Параметры.ПечНом = Ном;
        ОблДанные.Параметры.ПечСкважина = Стр.НомерСкважины;
        
        ОблДанные.Параметры.ПечНасосД = Стр.ДНомерНасоса;
        ОблДанные.Параметры.ПечДатаД = Стр.ДДатаМД;
        ОблДанные.Параметры.ПечЧасыД = Стр.ДЧасы;
        
        ОблДанные.Параметры.ПечНасосМ = Стр.МНомерНасоса;
        ОблДанные.Параметры.ПечДатаМ = Стр.МДатаМД;
        ОблДанные.Параметры.ПечЧасыМ = Стр.МЧасы;

        ТабДокумент.Вывести(ОблДанные);
        Ном = Ном + 1;
        
    КонецЦикла;
    
    ТабДокумент.ОриентацияСтраницы  = ОриентацияСтраницы.Портрет;
    ТабДокумент.ОтображатьЗаголовки = Ложь;
    ТабДокумент.ОтображатьСетку     = Ложь;
    ТабДокумент.Защита              = Ложь;
    ТабДокумент.ТолькоПросмотр      = Истина;
    ТабДокумент.АвтоМасштаб = Истина;
    ТабДокумент.Показать();


Макет такой же как у ТС на картинке. В регистры ввел точно такие же данные как на картинке.
Потенциальная ошибка: возможно в цикле, где идет отбор по скважинам, будет ошибка если количество демонтажей и монтажей будет разным.
Но тогда наверное легко подправить код. Если подправлю - сообщу.
92 igorPetrov
 
24.08.17
10:58
ТС дождался халявы )))) Работник фигов.
93 Маркусс
 
24.08.17
11:02
(91) подожди не уходи. я тебе щас пару задач накидаю тут
94 slnes
 
24.08.17
11:03
(88) ещё раз посмотри картинку, не то
95 Saari
 
24.08.17
11:04
(94) как не то, когда то.... А что не то?
96 Segate
 
24.08.17
11:05
(94) Я походу какое то скрытое поле на скриншоте не вижу... потому что все по условиям задачи )
97 Segate
 
24.08.17
11:06
(91) а почему обход по группировкам то не использовать? И просто уровни не делать, а выводить строку во вложенном цикле без заполнения скважины? По коду куда меньше получается... ИМХО
98 Маркусс
 
24.08.17
11:06
(94) тебе в (91) всё накидали. куле тебе надо ещё?)
99 slnes
 
24.08.17
11:08
(98) - (91) я ещё перевариваю, я про (88) писал
100 Масянька
 
24.08.17
11:09
100
101 Маркусс
 
24.08.17
11:10
(99) ты 11 лет стажа чем занимался?
102 Saari
 
24.08.17
11:12
Вот, исправил ошибку когда количество монтажей не равно количеству демонтажей:

Перед выводом данных цикл по скважинам заменить на этот:

Для Каждого Стр Из ТабСкважины Цикл
        
        Отбор = Новый Структура();
        Отбор.Вставить("НомерСкважины", Стр.НомерСкважины);
        РезультатОтбораД = ТЗД.НайтиСтроки(Отбор);
        РезультатОтбораМ = ТЗМ.НайтиСтроки(Отбор);
        КоличествоСтрокОтбораД = РезультатОтбораД.Количество();
        КоличествоСтрокОтбораМ = РезультатОтбораМ.Количество();
        КоличествоСтрокОтбора = Макс(КоличествоСтрокОтбораД, КоличествоСтрокОтбораМ);
        Для инд = 0 По КоличествоСтрокОтбора - 1 Цикл
            НЗ = ТЗ.Добавить();
            Если инд <= КоличествоСтрокОтбораД - 1 Тогда
                НЗ.НомерСкважины = РезультатОтбораД[инд].НомерСкважины;
                НЗ.ДНомерНасоса = РезультатОтбораД[инд].ДНомерНасоса;
                НЗ.ДДатаМД = РезультатОтбораД[инд].ДДатаМД;
                НЗ.ДЧасы = РезультатОтбораД[инд].ДЧасы;
            КонецЕсли;
            Если инд <= КоличествоСтрокОтбораМ - 1 Тогда
                НЗ.НомерСкважины = РезультатОтбораМ[инд].НомерСкважины;
                НЗ.МНомерНасоса = РезультатОтбораМ[инд].МНомерНасоса;
                НЗ.МДатаМД = РезультатОтбораМ[инд].МДатаМД;
                НЗ.МЧасы = РезультатОтбораМ[инд].МЧасы;
            КонецЕсли;
        КонецЦикла;
        
    КонецЦикла;
103 slnes
 
24.08.17
11:12
(101) это учетная запись на общем компе техникума сюда несколько человек пишут
104 JS d00d
 
24.08.17
11:12
(102) за меня не хочешь поработать ?
105 Маркусс
 
24.08.17
11:13
(104) в очередь
106 Segate
 
24.08.17
11:15
(103) дык ты скажешь мне где ошибка-то в (88)? А то я прям совсем уже на иголках )
107 igorPetrov
 
24.08.17
11:16
(103) Так ты молодой, да наглый ))))
108 Segate
 
24.08.17
11:19
(103) а последние темы вполне себе по одной тематике... не похоже на техникум ))
109 slnes
 
24.08.17
11:19
(106) первое отличие в и очень важное номер скважины не по центру, второе нет номера по порядку.
110 Маркусс
 
24.08.17
11:19
(107) насос он
111 JS d00d
 
24.08.17
11:19
(109) серьёзно ?
112 Маркусс
 
24.08.17
11:20
(109) ты хоть что-нибудь сделай сам для приличия)
пипец я охреневаю. ни пожалуйста, ни спасибо)
прёт буром, пэтэушник хренов
113 LuciferArh
 
24.08.17
11:21
(109) Ты издеваешься, да?
114 Segate
 
24.08.17
11:21
(109) Ааааа... ну тут я пас. Эта задачка мне не по зубам
115 Маркусс
 
24.08.17
11:25
по ходу центр по вертикали ему нужен))
а номер по порядку сделать - действительно очень сложная задача. скажи преподу, что много хочет
116 LuciferArh
 
24.08.17
11:27
(115) А если вертикаль по центру поставить? И номером ее, номером...
117 Маркусс
 
24.08.17
11:28
(116) точно. диаметр по параллелепипеду тока надо сначала сделать
118 igorPetrov
 
24.08.17
11:28
(109) Охреневший малец )))
119 Saari
 
24.08.17
11:29
(109) Вот, слегка переделал вывод номеров скважин, а то действительно не номер по порядку скважины.

    ТабДокумент = Новый ТабличныйДокумент;
    Макет        = ПолучитьМакет("НашМакетАренда");
    ОблШапка     = Макет.ПолучитьОбласть("Шапка");
    ОблДанные    = Макет.ПолучитьОбласть("Данные");
    
    ТабДокумент.Вывести(ОблШапка);
    
    Ном = 0;
    СтарыйНомерСкважины = "~~~";
    Для Каждого Стр Из ТЗ Цикл
        
        Если СтарыйНомерСкважины <> Стр.НомерСкважины Тогда
            Ном = Ном + 1;
            ОблДанные.Параметры.ПечНом = Ном;
            ОблДанные.Параметры.ПечСкважина = Стр.НомерСкважины;
        Иначе
            ОблДанные.Параметры.ПечНом = "";
            ОблДанные.Параметры.ПечСкважина = "";
        КонецЕсли;
        
        ОблДанные.Параметры.ПечНасосД = Стр.ДНомерНасоса;
        ОблДанные.Параметры.ПечДатаД = Стр.ДДатаМД;
        ОблДанные.Параметры.ПечЧасыД = Стр.ДЧасы;
        
        ОблДанные.Параметры.ПечНасосМ = Стр.МНомерНасоса;
        ОблДанные.Параметры.ПечДатаМ = Стр.МДатаМД;
        ОблДанные.Параметры.ПечЧасыМ = Стр.МЧасы;

        ТабДокумент.Вывести(ОблДанные);
        
        СтарыйНомерСкважины = Стр.НомерСкважины;
        
    КонецЦикла;

Думаю, достаточно.
120 igorPetrov
 
24.08.17
11:29
Правило нужно завести, сначала покажи, что сделал и где не получается, а потом помогать.
121 mistеr
 
24.08.17
11:30
По-моему, нас тут троллят всем техникумом. А мы ведемся.
122 Маркусс
 
24.08.17
11:30
(119) добавь в код:
Сообщить("Это я передрал с интернета");

Без этого работать не будет
123 Маркусс
 
24.08.17
11:31
(121) троллить таким макаром опасно. преподы тоже яндехом умеют пользоваться
124 JS d00d
 
24.08.17
11:32
(123) А мб и на форуме сидят ;]
125 igorPetrov
 
24.08.17
11:32
(121) Забанить его, и пусть пасется.
126 Saari
 
24.08.17
11:33
ТС, ты результат-то сообщи нам.
127 LuciferArh
 
24.08.17
11:35
(126) Погоди... Он сейчас насос в скважину смонтирует по центру и с нумерацией...
128 Маркусс
 
24.08.17
11:35
(124) та не надо нигде сидеть. кусок кода в поиск вставляешь и находишь первоисточник
129 Segate
 
24.08.17
11:37
(119) по поводу номеров по порядку, я бы сделал так:
ВЫБРАТЬ
    РС.Скважина КАК Скважина,
    КОЛИЧЕСТВО(РС_1.Скважина) КАК Номер
ИЗ
    РегистрСведений.насосы КАК РС
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.насосы КАК РС_1
        ПО РС.скважина >= РС_1.скважина // Условие сортировки для нумерации

СГРУППИРОВАТЬ ПО
    РС.Скважина

УПОРЯДОЧИТЬ ПО
    РС.Скважина

Такой запрос вернет тебе таблицу скважина и порядковый номер
130 Segate
 
24.08.17
11:37
Я правда на коленке писал, но должно как то так сработать
131 mistеr
 
24.08.17
11:39
(123) А тут есть преподы из техинкумов?
132 Saari
 
24.08.17
11:44
(129) запрос в колонке "Номер" возвращает уникальный номер для каждой скважины, но он не является именно номером по порядку (т.е. 1, 2, 3 и т.д.). У меня вернуло "3" и "11". В регистре 11 записей. Т.е. в колонку "Номер" пишется количество записей по конкретной скважине.
133 KrasnSergey
 
24.08.17
11:45
это уже не миста, а дом 2 какой-то))
134 igorPetrov
 
24.08.17
11:45
ТС слинял по тихому )))
135 Segate
 
24.08.17
11:46
(132) вот статейка. там все описано =) я когда-то именно с нее этот метод скомуниздил
136 Segate
 
24.08.17
11:46
137 Segate
 
24.08.17
11:47
(132) ты видимо взял всю таблицу, а потом наложил на нее отбор сверху по нужным скважинам, а надо сначала накладывать отбор, а потом соединять таблицу саму с собой
138 Saari
 
24.08.17
12:24
ТС что там по результату?
139 igorPetrov
 
24.08.17
12:28
(138) Он получил, что хотел и слинял.
140 slnes
 
24.08.17
12:35
(138) ключ пока забрали, вернут попробую
141 Saari
 
24.08.17
12:41
(140) когда предположительно вернут?
142 igorPetrov
 
24.08.17
12:46
(140) Свистишь))
143 slnes
 
25.08.17
05:43
(138) Если у скважины больше двух установленных насосов, номер скважины выводится сверху, а дальше выводятся просто пустые поля, так я умею. Еще раз напишу необходимо что бы скважина стояла по центру, даже если менялось два насоса, три насоса, 4 и тд.
Пока что никто не справился с, как вы говорите тривиальной задачей.
144 M-Mad
 
25.08.17
05:56
(143) А должны?
145 Velman
 
25.08.17
06:00
отож)
146 Saari
 
25.08.17
06:15
(143) покажи картинку ответа как надо если у скважины установлено несколько насосов.
Я ввел данные что у одной скважины несколько монтажные. И отчет вывел в разделе монтаж эти несколько записей в одной группе скважины.
Доп. Условие с несколькими насосами не понятно, покажи картинку.
147 igorPetrov
 
25.08.17
06:26
(144) Должны, ему же работу сдавать ))
148 igorPetrov
 
25.08.17
06:30
(143) А ни кто и не собирался для тебя справляться ))
149 0xFFFFFF
 
25.08.17
07:05
(143) Эти фердиперсово-извращенные форматы вывода данных нужны только менеджерам, которые страдают кретинизмом.
Все нормальные люди читают отчеты по форме (75) и не оправдывают свое слабоумие тем, что неправильно объединяются ячейки, выводятся не тем шрифтом и не с тем выравниванием.
Так и передай своему преподу :)
150 Мимохожий Однако
 
25.08.17
07:11
(149) Он и есть препод.
151 slnes
 
25.08.17
07:14
(146) но изначально проблема в том, что нужно насос нужно вывести по центру, как на картинке в начале. № насоса 222222 стоит по центру.
152 igorPetrov
 
25.08.17
07:17
(151) Это не проблема, это хрень.
153 igorPetrov
 
25.08.17
07:18
(151) Ты правда такой или притворяешься? Народ троллишь?
154 Мимохожий Однако
 
25.08.17
07:24
(151) после объединения дай команду "по центру"
155 Маркусс
 
25.08.17
07:42
(143)лососни тунца
156 Маркусс
 
25.08.17
07:44
(143) рассказ "волшебное слово" прочти пока ключ не вернули
157 mehfk
 
25.08.17
07:44
158 Saari
 
25.08.17
08:02
(151) дык в макете сделай в ячейке, в которую выводится насос, выравнивание по центру.
(143) покажи картинку как надо в этом условии.
159 Маркусс
 
25.08.17
08:17
(158) дядька, тебе заняться нечем, кроме как оборзевшего двоечника за уши тянуть? ничему же не научится. кроме как халявы требовать
160 FIXXXL
 
25.08.17
08:25
(88) Скважина то не по центру! А за это 13-е депримирование :)
161 slnes
 
25.08.17
08:55
(158) ну картинка же есть в начале темы, там от номера скважины 222222 сверху и снизу одинаковое расстояние.
Разместить в средней ячейке не получится т.к. ячейки может быть и две
162 igorPetrov
 
25.08.17
08:55
(161) Ты дебил?
163 igorPetrov
 
25.08.17
08:58
Я конешно извиняюся за слова не толерантные, но придел же бывает? ))
164 Saari
 
25.08.17
08:59
(161) расстояния в ячейке определяются форматом ячейки в макете отчета. В данной ветке форума приведен код формирования отчета и вывод в макет.
Сам макет в этой ветке форума не представлен.
Но если ты говоришь, что программировать умеешь, то макет нарисовать в конфигураторе минутное дело. Иначе как же ты код отчета вставляешь в модуль формы чтобы отчет выполнился?
165 Saari
 
25.08.17
09:00
(161) ты вообще сформировал отчет по нашим подсказкам? Что у тебя получилось? Покажи результат работы нашего отчета в виде картинки как в первом твоем сообщении.
166 igorPetrov
 
25.08.17
09:01
(164) Да троллит он просто всех.
167 LuciferArh
 
25.08.17
09:03
(164) Не умеет он код вставлять. Он же по насосам специалист. Вставить, вынуть...
168 slnes
 
25.08.17
09:18
(161) вот что выведет ваш код
<a href="http://savepice.ru"; target="_blank"><img src="http://cdn1.savepice.ru/uploads/2017/8/25/f38cf7460d78a0cbbb4a32b4acb16971-full.jpg"; border="0"/></a>
169 slnes
 
25.08.17
09:18
170 Saari
 
25.08.17
09:20
(169) УРА! Значит код без ошибок.
В макете сделай для ячеек с насосами выравнивание по центру (так же как и в ячейках со скважинами). Аналогично и для других ячеек.
И снова покажи картинку.
171 slnes
 
25.08.17
09:24
(170) Т.е. ты думаешь в этом проблема. Теперь открой две картинки распечатай приложи к окну, посмотри на скважину 222222, есть разница
172 Saari
 
25.08.17
09:25
(171) да, в колонке, в которой выводятся скважины нет объединения ячеек с одинаковым значением скважины. Это я увидел. Попытаюсь объединить программно. Если получится - сообщу.
173 slnes
 
25.08.17
09:25
Я ошибся написал вместо скважина насос и все, как выравнивать в ячейке и писать такой код я знаю.
174 Мимохожий Однако
 
25.08.17
09:27
(171) Куда приложить?
175 slnes
 
25.08.17
09:27
(172) ну слава богу прозрел, пихает мне элементарный код. Я сделал с перебором по группировкам. Этот код не проверял и так ясно что он выведет
176 igorPetrov
 
25.08.17
09:28
(173) Врешь, не знаешь.
177 M-Mad
 
25.08.17
09:28
(171) Забей на него, давай лучше я тебе более интересных задач накидаю.
178 M-Mad
 
25.08.17
09:29
(177) к (172)
179 slnes
 
25.08.17
09:29
(177) ты эту реши сначала
180 slnes
 
25.08.17
09:30
А то отчет элементарный а сделать никто не может
181 M-Mad
 
25.08.17
09:30
(179) Бюджет?
182 igorPetrov
 
25.08.17
09:31
(180) Толстый , уже скучно.
183 slnes
 
25.08.17
09:32
(181) ты для себя реши я объединением сделал уже
184 slnes
 
25.08.17
09:32
подсказали ранее
185 Saari
 
25.08.17
09:32
(175) да ты чо! В таком случае в самом первом сообщении надо было спросить как объединить ячейки программно!
А мы тут код вышиваем вручную....
(180) не отчет сделать, а объединить программно ячейки. Разницу в постановке понимаешь?
186 Маркусс
 
25.08.17
09:32
(180) 500 рублей. забаньте уже это быдло
187 Saari
 
25.08.17
09:33
(184) покажи код объединения ячеек.
И вообще, покажи код отчета.

И вообщевообще, если все работает уже, что чем мы тут занимаемся?
188 Saari
 
25.08.17
09:34
(177) сложные задачи? ))
189 slnes
 
25.08.17
09:34
(187) вы спрашиваете я отвечаю
190 Saari
 
25.08.17
09:36
(189) т.е. мы тебя заставили задать нам задачу по написанию отчета?... )))
191 igorPetrov
 
25.08.17
09:36
(186) +100500 Он все пределы перешел
192 Saari
 
25.08.17
09:37
Короче... покажи нам код отчета с объединением ячеек и тему можно закрывать (раз есть результат, который принял ТС).
193 slnes
 
25.08.17
09:37
(190) я дргую задачу давал, не знаете не надо отвечать
194 slnes
 
25.08.17
09:38
(192) ну нет сказали тривиальная решайте сами
195 LuciferArh
 
25.08.17
09:40
(193)-(194) Ты не борзей... Тебе помогают, а ты хамишь.
196 igorPetrov
 
25.08.17
09:49
(194) Да нам это нафиг не надо ))
197 Saari
 
25.08.17
09:54
вот, получилось. Часть кода замени у себя на этот:

    //Вывод данных
    ТабДокумент = Новый ТабличныйДокумент;
    Макет        = ПолучитьМакет("НашМакетАренда");
    ОблШапка     = Макет.ПолучитьОбласть("Шапка");
    ОблДанные    = Макет.ПолучитьОбласть("Данные");
    
    ТабДокумент.Вывести(ОблШапка);
    
    Ном = 0;
    НомерСтрокиДляОбъединения = 5;
    НачальныйНомерСтрокиДляОбъединения = 5;
    СтарыйНомерСкважины = "~~~";
    Для Каждого Стр Из ТЗ Цикл
        
        Если СтарыйНомерСкважины <> Стр.НомерСкважины Тогда
            Если СтарыйНомерСкважины <> "~~~" Тогда
                ТекстОбластиЯчеекДляОбъединения1 = "R" + Строка(НачальныйНомерСтрокиДляОбъединения) + "C1:R" + Строка(НомерСтрокиДляОбъединения-1) + "C1";
                ТекстОбластиЯчеекДляОбъединения2 = "R" + Строка(НачальныйНомерСтрокиДляОбъединения) + "C2:R" + Строка(НомерСтрокиДляОбъединения-1) + "C2";
                ОбластьОбъединения1 = ТабДокумент.Область(ТекстОбластиЯчеекДляОбъединения1);
                ОбластьОбъединения2 = ТабДокумент.Область(ТекстОбластиЯчеекДляОбъединения2);
                ОбластьОбъединения1.Объединить();
                ОбластьОбъединения2.Объединить();
                НачальныйНомерСтрокиДляОбъединения = НомерСтрокиДляОбъединения-1;
            КонецЕсли;
            Ном = Ном + 1;
            ОблДанные.Параметры.ПечНом = Ном;
            ОблДанные.Параметры.ПечСкважина = Стр.НомерСкважины;
        Иначе
            ОблДанные.Параметры.ПечНом = "";
            ОблДанные.Параметры.ПечСкважина = "";
        КонецЕсли;
        
        ОблДанные.Параметры.ПечНасосД = Стр.ДНомерНасоса;
        ОблДанные.Параметры.ПечДатаД = Стр.ДДатаМД;
        ОблДанные.Параметры.ПечЧасыД = Стр.ДЧасы;
        
        ОблДанные.Параметры.ПечНасосМ = Стр.МНомерНасоса;
        ОблДанные.Параметры.ПечДатаМ = Стр.МДатаМД;
        ОблДанные.Параметры.ПечЧасыМ = Стр.МЧасы;

        ТабДокумент.Вывести(ОблДанные);
        
        НомерСтрокиДляОбъединения = НомерСтрокиДляОбъединения + 1;
        СтарыйНомерСкважины = Стр.НомерСкважины;
        
    КонецЦикла;
    ТекстОбластиЯчеекДляОбъединения1 = "R" + Строка(НачальныйНомерСтрокиДляОбъединения+1) + "C1:R" + Строка(НомерСтрокиДляОбъединения-1) + "C1";
    ТекстОбластиЯчеекДляОбъединения2 = "R" + Строка(НачальныйНомерСтрокиДляОбъединения+1) + "C2:R" + Строка(НомерСтрокиДляОбъединения-1) + "C2";
    ОбластьОбъединения1 = ТабДокумент.Область(ТекстОбластиЯчеекДляОбъединения1);
    ОбластьОбъединения2 = ТабДокумент.Область(ТекстОбластиЯчеекДляОбъединения2);
    ОбластьОбъединения1.Объединить();
    ОбластьОбъединения2.Объединить();
    
    ТабДокумент.ОриентацияСтраницы  = ОриентацияСтраницы.Портрет;
    ТабДокумент.ОтображатьЗаголовки = Ложь;
    ТабДокумент.ОтображатьСетку     = Ложь;
    ТабДокумент.Защита              = Ложь;
    ТабДокумент.ТолькоПросмотр      = Истина;
    ТабДокумент.АвтоМасштаб = Истина;
    ТабДокумент.Показать();
198 LuciferArh
 
25.08.17
09:55
(197) Вот же ты терпеливый...
199 Saari
 
25.08.17
09:57
И внимание! В макете шапка имеет 4 строки, строка с данными занимает в макете одну строку. Начинается, следовательно,с  5-й. Данный код объединяет первую колонку и вторую (с номером по порядку и с названием скважины).
И обязательно покажи результат!!!
200 slnes
 
25.08.17
09:58
Тогда и (162) забанте, я никого не оскорблял.
201 Saari
 
25.08.17
09:58
Этот отчет какое-то вязание крючком ))
202 K1RSAN
 
25.08.17
09:59
Пятница такая пятница.
Вот чисто интересно, я в голове вижу следующую картину, как это можно сделать (алгоритм).
Запросом делаем выборку с нужными данными. Можно сгруппировать, а можно просто вообще в наглую отсортировать по номеру скважины.
сделать макет с областями и указанными параметрами.
Завести какой-нибудь счетчик (для первой графы)
По циклу проходить всю выборку. Пока номер скважины не меняется - просто клепать область с данными. Как только номер меняется - делаем объединение ячеек с номером скважины и номером счетчика, счетчик увеличиваем, настраиваем "ГраницаСнизу" потолще.
Я правильно мыслю?
203 Saari
 
25.08.17
09:59
(200) обязательно покажи результат!
204 Saari
 
25.08.17
09:59
(200) в (162) был вопрос )))
205 igorPetrov
 
25.08.17
09:59
(200) Твоё поведение уже оскорбление. Хамло.
206 Saari
 
25.08.17
10:00
(202) вообще-то все уже сделано )))
207 igorPetrov
 
25.08.17
10:01
(204) Да, он на него не ответил ))
208 Saari
 
25.08.17
10:03
(200) переписывай код, мы ждем результат!
209 slnes
 
25.08.17
10:04
(203) не будет результатов, всем спасибо до свидания. Меня об-ли и ещё и забанили, настроения нет.
210 _stay true_
 
25.08.17
10:06
(209) Кажется, у кого-то опять ПМС
211 IvaneS
 
25.08.17
10:06
(206) это сколько тонн терпения вмещается в вас?
212 Saari
 
25.08.17
10:08
(209) даже тем, кто тебе помогал не покажешь???
213 Saari
 
25.08.17
10:09
(209) как же тебя забанили, если ты написал это сообщение?
214 Saari
 
25.08.17
10:16
Фееричная тема, однако...
215 igorPetrov
 
25.08.17
10:34
Он получил что хотел. Поиздевался над  народом. И свалили.
216 IvaneS
 
25.08.17
10:57
(214) а (0) случайно не для тебя задачу писал? или показалось... такое чувство, что ты знал)))
217 Saari
 
25.08.17
11:01
(216) нет, не для меня. я знать не знаю кто это.
218 IvaneS
 
25.08.17
11:11
(217) У ТС "Обида" сожрала "Благодарность", а может последнего не было.
219 Saari
 
25.08.17
11:31
(218) "Обида" за что? Даже если его обидели, то благодарность должна быть к помогающим.
220 Мимохожий Однако
 
25.08.17
11:35
(219) Не жди благодарности.© ))
221 Saari
 
25.08.17
11:40
(220) хотелось бы посмотреть на результат, который получит ТС. Промежуточный результат он показал. В нем осталось объединить одинаковые ячейки в первых двух колонках. Мы ему написали как это сделать.  Хочется после этого посмотреть на результат.
222 Мимохожий Однако
 
25.08.17
11:43
(221) Эк тебя зацепило
223 Saari
 
25.08.17
11:46
(222) раз в глаза не получается посмотреть, так пусть результат показывает )))
224 Saari
 
25.08.17
11:48
Тут уже, наверное, дело принципа.
Он на просвет (на окне) сравнивал отчеты. И показывал, что это не так. Ему сделали так, как он говорил. И вот что он теперь скажет?
Думаю, что ничего не скажет, ибо результат даже на просвет одинаков.
225 Мимохожий Однако
 
25.08.17
11:50
(224)Дело не в отчёте...
226 JS d00d
 
25.08.17
12:02
жесть, Saari , тебе скучно ?)
да и какой смысл помогать быдлу
227 Кукурузина
 
25.08.17
12:04
(0) ну что помогли то хоть? Это особенность данного форума, напишут 100500 сообщений, обо всем, а помощи так и не будет
228 Saari
 
25.08.17
12:07
(226) просто было время и я смог написать отчет по заданию. А про "спасибо" это выяснилось потом.
(227) да! в ветке есть готовое решение. Можно проверить.
229 Segate
 
25.08.17
13:53
(228) чуваааак, твои методы работы с макетами - просто жесть xD Программно объединять ячейки - это же ппц ) Научу работать с макетами - дорого ) В моем варианте достаточно было просто в условном оформлении ткнуть формат ячейки и все =) Для меня слишком сложно что-то там программно объединять )))
230 Saari
 
25.08.17
13:56
(229) а за просто так, всмысле бесплатно, научишь? Можешь прислать пример этого отчета но с твоим макетом?
231 _stay true_
 
25.08.17
14:06
Чуваки и чувихи, вам не надоело?))
232 Saari
 
25.08.17
14:13
(231) не надоело что? общаться? отчет писАть?
С отчетом мы закончили ))
233 _stay true_
 
25.08.17
14:18
(232)  Вот я как-раз про отчет)))
А пообщаться всегда хорошо)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший