Проект доминикана чем кончился 1с
1. Автобусы в Доминикане называются «gua-gua». Доминиканцы — народ очень дружный, поэтому на сидение, предназначенное для одного человека, вполне умещается 2–3, и надо еще брать в расчет, что Доминикана является страной пышных форм с XXXL размером. Поэтому недоумение в глазах тушки весом в 100–120 килограмм, которая не вместилась-таки, вполне можно понять.
Однажды таксист, с которым я ехал, изрек незабываемую фразу по поводу одной мадмуазели: «Мамочка, ты родилась в декабре и тебе дали двойную!» — Доминиканцы любят полных женщин, это правда. Да и вообще, если вы женского пола, не удивляйтесь комплиментам на улице. Ничего неприличного они в себе не несут.
2. Не то, чтобы присутствуют какие-то проблемы с полиграфией, но рекламу (для лотерейных и продуктовых ларьков или небольших автомастерских) принято изображать прямо на стенах здания при помощи трафаретов (чаще без них), кисточек и краски. Доминиканцы все «умеют» рисовать, и получается очень даже прикольно.
Такая культура рисования зародилась еще в далеких 70-х годах, когда в стране появились первые полиграфические станки, и, конечно, печать стоила бешеных по тем временам денег.
Людей, которые занимаются рисованием рекламы, здесь называют «Pintaletra» (с исп. — «БуквоКрас»). Самый известный в этой индустрии — Lolo Jackson, собственно, он и является отцом этой культуры.
3. Зимой в Доминикане месяц висит на небе вверх рогами. И это не белочка, как могло бы показаться туристам из Пунта Каны. Ребят, осторожней с ромом, это, все-таки, пиратский напиток.
4. Доминиканскую Республику выбирают такие люди как Шакира, Хулио Иглесиас, а у Вина Дизеля даже есть пара любимых стрип-баров в Санто-Доминго.
Дизель, кстати, один из самых ярых поклонников страны, поэтому в его фильмах часто или играет доминиканская музыка, или действие разворачивается в Доминикане. Хотя в «Форсаж 4» и упоминается Доминиканская Республика, в реале — снимался он не здесь.
Зато «Парк Юрского периода» — yes, «Последние герои» Израиля, Америки — yes.
В музее янтаря в Пуэрто Плата лежит янтарь, который показывали в «Парке Юрского Периода». Да, его стоимость — всего 120 тысяч долларов, возраст — около 30 миллионов лет, в длину — 3.5 дюйма.
5. На полуострове Самана (Север Доминиканы) устрица стоит дешевле, чем лимон-то есть 5 доминиканских песо за штуку.
6. С часу до трёх все магазины закрываются на обед. Но, учитывая вальяжность доминиканского менталитета, обеденное время спокойно может растянуться с 12 до 4 часов. Видел даже пару отличившихся закрытых ресторанов.
Самое почетное место для сидения на пластиковом стуле во время сиесты — рядом с лежачим полицейским. Проезжающие мимо машины вынуждены останавливаться, и есть шанс хорошо разглядеть всех пассажиров. Своеобразный кинотеатр.
7. Доминиканки предпочитают обтягивающую одежду, вне зависимости от пышности форм. В большинстве случаев лифчик остается виден из-за выреза на спине.
8. Если по дороге идет доминиканка в бигуди — это нормально, они очень открытые и стесняться не привыкли, ну и отлично, они симпатичные. Педикюрманикюр вдоль дороги, ну, в смысле на пороге собственного дома — тоже гуд.
9. В Республике Доминикана такие вещи как Colgate, Fairy и т. п. стали нарицательными. Поэтому зубная паста — это не «pasta dental», а Colgate. Моющее средство — так и есть Fairy, средство для мытья пола — Mistolin.
10. С доминиканской женщиной легко сойтись, трудно расстаться. Веником не выгонишь, лопатой, кстати, тоже.
11. В Доминикане не считается зазорным ездить на машине с налепленной рекламой куры-гриль или фэйсом любимого депутата.
12. В деревнях основным видом рекламы является пикап с двухметровыми колонками в кузове. За 500 доминиканских песо в день он может оповестить все население о том, что у Педро не очень большой член, или о какой-нибудь новой дискотеке.
13. В Доминикане официально разрешены ранние браки, но только при согласии родителей. Брачный возраст начинается с 15 лет для девушек и с 16 лет для юношей. Поэтому 15-летие (Quinces) каждой девочки празднуют круче, чем совершеннолетие (18).
Радует здешнее отношение к детям в целом. В автобусе нормальная ситуация, если абсолютно чужой человек попросит взять подержать на руках вашего младенца. Ничего в этом такого нет, они и правда любят детей.
14. 5 доминиканских минут — это 5 min + бесконечность (как и в любой другой стране Латинской Америки). Вопрос регулируемый. Не с первого раза, но…
15. В Доминиканской Республике люди свято верят в лотерею, нет, правда. Мы проезжали деревушки на границе с Гаити, где нет магазинов с продуктами (предположительно, народ меняет куриц на овощи и наоборот), зато стоят 3 банки (banca — с исп. лотерея). Вот такая вера в счастье, падающее с неба. Удар кейса с зеленью о наполированную лысину. МММ сюда еще не проникло, какое упущение. Мавроди, just do it!
16. Если доминиканец видел, как меняют колесо, то он стопроцентно уверен, что уже вполне способен перебрать движок с закрытыми глазами. Это не означает, что здесь плохие механики, отнюдь, просто надо знать, куда отдаешь свою железную малышку.
17. Часто в Доминикане в машину заливают масло «все сезоны». Ответом на недоумение вашего лица обычно служит: «Йо, бро, так сейчас же зима». Хочется подарить парню скребок. Да, шины здесь вполне могут оказаться зимними, обращайте внимание при покупке.
18. Здесь очень религиозный народ. На каждой третьей машине висит наклейка «Иисус спасет нас», «Бог со мной, кто на меня?», и, пожалуй, самая феерическая — «Иисус учил меня водить, проблемы?». Практически во всех ларьках/магазинах небольшая табличка в рамочке «Господь благословил этот бизнес».
Помню, когда я проходил мимо церкви и услышал, как там поют и играют на фортепиано, меня это очень удивило. С русским менталитетом я задал вопрос Падре: «А чего все так веселятся?», на что он ответил «Так Господь Бог — это же весело». Это правильное отношение к религии.
19. Мотоцикл — это не средство передвижения для двух-трех человек. Здесь спокойно умещается до 6 человек.
20. Доминикана — единственное место в мире, где добывают ларимар, разновидность голубого пектолита, внешне напоминающего бирюзу.
21. Любой доминиканец, кого не спроси, скажет, что он потомок индейцев таино (taino). Интересно, куда тогда подевались потомки рабов? И опять же, с моей точки зрения, нет в этом ничего постыдного.
22. Первая латиноамериканская актриса, которая начала сниматься в голливудских фильмах — Мария Монтес (Maria Africa Vidal de Santos Silas), доминиканка по происхождению. Родилась она, кстати, в пустынной Бараоне (на Юге Доминиканы) среди кактусов.
23. Только в Доминиканской республике водятся красноглазые игуаны Ricordi (Cyclura ricordi) — их всего 2 тысячи особей. Интересно, что в Бараоне местное население уверяет, что игуаны своими гребнями на скорости пропарывают козе брюхо. Должно быть, это какие-то очень реактивные игуаны, с коими никто ранее не встречался.
А также здесь водится великий и ужасный Щелезуб, помимо Доминиканы, встречающийся и на Кубе. Щелезуб, он же Solenodon Paradoxus интересен тем, что у него нет иммунитета от своих же ядовитых желез. То есть, если в борьбе за территориальное влияние или самку, его укусит другой щелезуб, то дни его сочтены. У щелезуба только 2 соска, поэтому прокормить он может только двоих, реже — троих детенышей.
24. Многие на форумах о Доминикане пишут, что, мол, доминиканцы часто обманывают или много косячат. Это не так. На самом деле ситуация обстоит следующим образом: доминиканец, сам того не ведая, свято верит в то, что он в состоянии выполнить ту или иную задачу, и в большинстве случаев эта вера как раз затмевает трезвую оценку в его разуме. Так и есть, глупо их в этом винить.
25. Как это не странно для островитян, но большинство доминиканцев не умеет плавать. Если, например, доминиканская семья арендует виллу для отдыха на первой линии и там есть бассейн, то они никогда не полезут в море. Хотя, умение плавать в этом случае ни при чем. Для доминиканцев бассейн — это, наверное, символ богатства.
26. Самая распространенная обувь среди европейцев в курортных зонах — шлепки. Среди доминиканцев — кроссовки и строительные зимние ботинки.
27. В Доминикане даже мужчины носят футболки со стразами. Доминиканцы любят блестящие шмотки. По этой же причине никто не снимает голографические наклейки с кепок. Одно из развлечений для туриста — прогулка с металлоискателем по пляжу. Видел людей, которые неплохо с этого поднимались. Ведь островитяне наряжаются золотом как новогодние елки.
28. Доминиканцы — дружный народ, и если они собираются на празднование какого-то действа, то обычно арендуется минибас, или что-то в этом духе. Самые оптимальные машины в стране — пикапы, в них сзади может поместиться много родственников.
29. Одно из самых больших соленых озер мира, крокодилье озеро Lago Enriquillo, насчитывает около 400 особей американского крокодила, при размере озера в 370 квадратных километров. То есть, в среднем, по одному крокодилу на квадратный километр.
Да, уровень «солености» в нём в 8 раз превышает «соленость» Карибского моря. Я бы проверил «как оно выталкивает меня силой Архимеда», но крокодилы…
30. В Доминикане нет пенсий. Старикам помогает многочисленная родня.
Полная противоположность России, где символом обиды является несчастный пенсионер. Несчастная старость — это не про Доминикану точно. Часто вижу людей, которым лет по 70–80, и ничего: танцуют, поют и курят сигары, запивая ромом.
31. Лежачие полицейские в Доминиканской Республике не подходят ни под какие стандарты. Кто как умел, так и построил. Многие даже не обозначены, но к этому быстро привыкаешь, так как качество дорог здесь на порядок лучше, чем в России.
32. Понятия «сезон дождей» в Доминикане в принципе не существует. В Доминиканской Республике зонтик, в основном, предназначен для защиты от солнца, потому что дожди преимущественно идут ночью, или час-полтора днем. Дождей больше с мая по сентябрь, это правда. Но сравнивать мест
Кто то может быть называет это блюдо «свежайшее мясо молодого ягненка, зарубленного на рассвете, замаринованное в соевом соусе с добавлением лука и специй, обжаренное на открытом огне и доготовленное на жару от осиновых углей». Но чаще всего его все-таки называют «шашлык».
Тот, кто хоть немного следил за «Проектом Доминикана», наверняка отметил умение руководителей проекта упоминать красивые и звучные слова (напр. коллоборация, экосистема, xRM и пр.).
Давайте попытаемся разобраться в скрытом подтексте, который несут все организационные материалы по проекту! Что обещают сделать? Некую систему, которая позволит любому сотруднику любой коммерческой (а может даже и не только коммерческой) фирмы включить любое свое самое любимое устройство для работы в интернете и: увидеть полезную для себя информацию; пользоваться информацией, которую размещал другой участник системы; обработать всю эту информацию, при чем вероятно в игровой форме; связаться (написать, позвонить, поставить задачу) с другими членами системы; еще много всего, но я на этом пока остановлюсь.
Или «Проект Доминикана» - это и будет социальная сеть? Но какой «здравомыслящий» руководитель разрешит вести учет своей организации в социальной сети?! Ведь данные хранятся «где то в интернете», их «могут украсть», да и просто «как то не солидно»! Отсюда и красивые замысловатые слова, и возможность установить систему локально для хранения своих данных у себя, и возможность подключиться к системе по подписке.
Я буду очень рад, если мое предположение окажется истиной и продукт «Проекта Доминиканы» - это действительно качественная социальной сеть, ориентированная на бизнес-задачи. Я вижу за этим будущее, так как современному человеку недостаточно тех знаний, информации и общения, которые ему дает офис, своя учетная система и вспомогательная литература. Не поэтому ли мы все так часто зависаем на различных информационных и развлекательных ресурсах как в рабочее, так и в нерабочее время?!
Поразмышляйте - сколько сейчас встречается сложностей перед фирмой, пытающейся выйти на занятый рынок? И в первую очередь - это человеческий фактор (ну привык менеджер работать с одним поставщиком и не хочет его на другого менять, или еще хуже - у менеджера уже налажены хитрые схемы работы с поставщиком). И этот человеческий фактор очень сложно проконтролировать. Или недобросовестные контрагенты. Сколько таких и много ли о них знают?! А в соц. сети - все прозрачно - набрал в поиске нужный запрос - и тебе вся история со всеми взаимосвязями - и менеджера на ковер за то, что не принял более выгодное предложение, и контрагента недобросовестного тоже увидели заранее.
Многим было интересна первая задача, которую отправили разработчикам для тестирования на проект Доминикана. В этой публикации я покажу вам само задание, а также решение. Сразу скажу, что решение не идеальное. Проект Доминикана поставил мне оценку - 3 балла. Если будут предложения об ускорении, то с радостью их рассмотрю.
Добрый день Коллеги.
Многим было интересна первая задача, которую отправили разработчикам для тестирования на проект Доминикана. В этой публикации я покажу вам самое задание, а так же решение. Сразу скажу, что решение не идеальное. Проект Доминикана поставил мне оценку - 3 бала. Если будут предложения об ускорении, то с радостью их рассмотрю.
Есть регистр сведений «Остановки по маршруту» в котором хранится информация о расстоянии от начальной до конечной остановки.
Требуется разработать отчет на СКД, который покажет расстояние между двумя остановками по маршруту.
Отчет представляет собой прямоугольный треугольник, на гипотенузе названия остановок по порядку. На пересечении горизонтальной и вертикальной линии от двух остановок заполнено значение, равное расстоянию между этими остановками. Например, расстояние между «Борок» и «Мологино» 6,3 км (Рисунок №2).
Важно: Отчет должен быть разработан без программного кода при помощи набора данных – Запрос. Текст запроса должен быть один.
Рис. №2 Отчет «Таблица расстояний».
Внимание, перед тем как читать дальше я рекомендую попробовать самостоятельно решить данную задачу.
Скачайте DT файл, создайте новый отчет, в котором постарайтесь решить самостоятельно задачу. Обещаю решение не оставит вас равнодушными.
Создаем текст запроса:
ВЫБРАТЬ
ОстановкиПоМаршруту.Остановка КАК Остановка,
ОстановкиПоМаршруту.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрута
ПОМЕСТИТЬ ВТМаршрут
Остановка.*,
РасстояниеОтНачалаМаршрута>
ИЗ
РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршруту
ГДЕ
ОстановкиПоМаршруту.Маршрут = &Маршрут
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОстановкиПоМаршруту.Остановка КАК Остановка,
СУММА(1) КАК ПорядковыйНомер
ПОМЕСТИТЬ ВТПорядковыеНомера
ИЗ
РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршруту
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрут
ПО (ВЫБОР
КОГДА ОстановкиПоМаршруту.РасстояниеОтНачалаМаршрута >= ВТМаршрут.РасстояниеОтНачалаМаршрута
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
ГДЕ
ОстановкиПоМаршруту.Маршрут = &Маршрут
СГРУППИРОВАТЬ ПО
ОстановкиПоМаршруту.Остановка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТПорядковыеНомераДополнительный.Остановка КАК ОстановкаОтправление,
ВТПорядковыеНомераОсновной.Остановка КАК ОстановкаПрибытие
ПОМЕСТИТЬ ВТВозможныеМаршруты
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомераОсновной
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ВТПорядковыеНомераДополнительный
ПО ВТПорядковыеНомераОсновной.ПорядковыйНомер > ВТПорядковыеНомераДополнительный.ПорядковыйНомер
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТВозможныеМаршруты.ОстановкаОтправление,
ВТВозможныеМаршруты.ОстановкаПрибытие,
ВТМаршрутТочкаНачала.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрутаОтправление,
ВТМаршрутТочкаОкончания.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрутаПрибытие
ПОМЕСТИТЬ ВТРасстояния
ИЗ
ВТВозможныеМаршруты КАК ВТВозможныеМаршруты
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрутТочкаНачала
ПО ВТВозможныеМаршруты.ОстановкаОтправление = ВТМаршрутТочкаНачала.Остановка
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрутТочкаОкончания
ПО ВТВозможныеМаршруты.ОстановкаПрибытие = ВТМаршрутТочкаОкончания.Остановка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ВТПорядковыеНомера.ПорядковыйНомер КАК ПорядковыйНомер,
ВТПорядковыеНомера.Остановка
ПОМЕСТИТЬ ВТПерваяОстановка
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомера
УПОРЯДОЧИТЬ ПО
ПорядковыйНомер
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ВТПорядковыеНомера.ПорядковыйНомер КАК ПорядковыйНомер,
ВТПорядковыеНомера.Остановка
ПОМЕСТИТЬ ВТПоследняяОстановка
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомера
УПОРЯДОЧИТЬ ПО
ПорядковыйНомер УБЫВ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТРасстояния.ОстановкаОтправление КАК ОстановкаОтправление,
ВТРасстояния.ОстановкаПрибытие КАК ОстановкаПрибытие,
ЕСТЬNULL(ВТРасстояния.РасстояниеОтНачалаМаршрутаПрибытие, 0) - ЕСТЬNULL(ВТРасстояния.РасстояниеОтНачалаМаршрутаОтправление, 0) КАК Расстояние,
ПорядковыйНомерОстОтправление.ПорядковыйНомер КАК ПорядковыйНомерОтправление,
ПорядковыйНомерОстПрибытие.ПорядковыйНомер КАК ПорядковыйНомерПрибытие
ОстановкаОтправление.*,
ОстановкаПрибытие.*,
Расстояние,
ПорядковыйНомерОтправление,
ПорядковыйНомерПрибытие>
ИЗ
ВТРасстояния КАК ВТРасстояния
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ПорядковыйНомерОстОтправление
ПО ВТРасстояния.ОстановкаОтправление = ПорядковыйНомерОстОтправление.Остановка
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ПорядковыйНомерОстПрибытие
ПО ВТРасстояния.ОстановкаПрибытие = ПорядковыйНомерОстПрибытие.Остановка
ГДЕ
НЕ ВТРасстояния.ОстановкаОтправление ЕСТЬ NULL
ВЫБРАТЬ
ВТПерваяОстановка.Остановка,
ВТПерваяОстановка.Остановка,
NULL,
ВТПерваяОстановка.ПорядковыйНомер,
ВТПерваяОстановка.ПорядковыйНомер
ИЗ
ВТПерваяОстановка КАК ВТПерваяОстановка
ВЫБРАТЬ
ВТПоследняяОстановка.Остановка,
ВТПоследняяОстановка.Остановка,
NULL,
ВТПоследняяОстановка.ПорядковыйНомер,
ВТПоследняяОстановка.ПорядковыйНомер
ИЗ
ВТПоследняяОстановка КАК ВТПоследняяОстановка
Далее переходим к корректировке настроек СКД
показано, что мы для полей Остановка отправление, Остановка прибытие и Расстояние мы делаем пустые заголовки. Точнее один пробел. Т.к. пустой указать не удается.
Делаем упорядочивание представления:
Для реквизита ОстановкаОтправление - ПорядковыйНомерОтправление возр
Для реквизита ОстановкаПрибытие - ПорядковыйНомерПрибытие возр
Для реквизита Расстояние делаем набор свойств как на рисунке. Рис. 4.
А именно Размещение - Обрезать.
И минимальная и максимальная ширина равная - 9.12
На этом настройка набора данных завершена
Создаем ресурс - Расстояние
В выражении пишем:
Выбор Когда Представление(ОстановкаОтправление) = Представление(ОстановкаПрибытие) Тогда Представление(ОстановкаОтправление) Иначе Сумма(Расстояние) Конец
Рассчитываем по группировкам ОстановкаОтправление, ОстановкаПрибытие.
Пожалуй самое сложное было добиться результата.
Были созданы макет для группировки ОстановкаОтправления
Параметр уже был получен из запроса, я сделал запрет незаполненных значений и использование - всегда.
Настройки вывода отчета.
показано, что была использована для представления Таблица
Строки - Остановка прибытия
Колонки - Остановка отправления
Настраиваем внешний вид
Отключаем вывод итогов
Делаем заголовок- Таблица расстояний
Указываем что надо выводить параметры
Делаем условное оформление.
Указываем что цвет границы будет белым для всех строк у которых не заполнено расстояние.
И указываем что стиль границы сверху - будет без линии для тех полей, где Расстояние = ""
Вот собственно и все. В результате у меня получилась:
Это мой способ решения. На решение ушло около 3-х часов.
С радостью рассмотрю предложения по упрощению и улучшению данного решения.
Многим было интересна первая задача, которую отправили разработчикам для тестирования на проект Доминикана. В этой публикации я покажу вам само задание, а также решение. Сразу скажу, что решение не идеальное. Проект Доминикана поставил мне оценку - 3 балла. Если будут предложения об ускорении, то с радостью их рассмотрю.
Добрый день Коллеги.
Многим было интересна первая задача, которую отправили разработчикам для тестирования на проект Доминикана. В этой публикации я покажу вам самое задание, а так же решение. Сразу скажу, что решение не идеальное. Проект Доминикана поставил мне оценку - 3 бала. Если будут предложения об ускорении, то с радостью их рассмотрю.
Есть регистр сведений «Остановки по маршруту» в котором хранится информация о расстоянии от начальной до конечной остановки.
Требуется разработать отчет на СКД, который покажет расстояние между двумя остановками по маршруту.
Отчет представляет собой прямоугольный треугольник, на гипотенузе названия остановок по порядку. На пересечении горизонтальной и вертикальной линии от двух остановок заполнено значение, равное расстоянию между этими остановками. Например, расстояние между «Борок» и «Мологино» 6,3 км (Рисунок №2).
Важно: Отчет должен быть разработан без программного кода при помощи набора данных – Запрос. Текст запроса должен быть один.
Рис. №2 Отчет «Таблица расстояний».
Внимание, перед тем как читать дальше я рекомендую попробовать самостоятельно решить данную задачу.
Скачайте DT файл, создайте новый отчет, в котором постарайтесь решить самостоятельно задачу. Обещаю решение не оставит вас равнодушными.
Создаем текст запроса:
ВЫБРАТЬ
ОстановкиПоМаршруту.Остановка КАК Остановка,
ОстановкиПоМаршруту.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрута
ПОМЕСТИТЬ ВТМаршрут
Остановка.*,
РасстояниеОтНачалаМаршрута>
ИЗ
РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршруту
ГДЕ
ОстановкиПоМаршруту.Маршрут = &Маршрут
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОстановкиПоМаршруту.Остановка КАК Остановка,
СУММА(1) КАК ПорядковыйНомер
ПОМЕСТИТЬ ВТПорядковыеНомера
ИЗ
РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршруту
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрут
ПО (ВЫБОР
КОГДА ОстановкиПоМаршруту.РасстояниеОтНачалаМаршрута >= ВТМаршрут.РасстояниеОтНачалаМаршрута
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
ГДЕ
ОстановкиПоМаршруту.Маршрут = &Маршрут
СГРУППИРОВАТЬ ПО
ОстановкиПоМаршруту.Остановка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТПорядковыеНомераДополнительный.Остановка КАК ОстановкаОтправление,
ВТПорядковыеНомераОсновной.Остановка КАК ОстановкаПрибытие
ПОМЕСТИТЬ ВТВозможныеМаршруты
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомераОсновной
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ВТПорядковыеНомераДополнительный
ПО ВТПорядковыеНомераОсновной.ПорядковыйНомер > ВТПорядковыеНомераДополнительный.ПорядковыйНомер
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТВозможныеМаршруты.ОстановкаОтправление,
ВТВозможныеМаршруты.ОстановкаПрибытие,
ВТМаршрутТочкаНачала.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрутаОтправление,
ВТМаршрутТочкаОкончания.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрутаПрибытие
ПОМЕСТИТЬ ВТРасстояния
ИЗ
ВТВозможныеМаршруты КАК ВТВозможныеМаршруты
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрутТочкаНачала
ПО ВТВозможныеМаршруты.ОстановкаОтправление = ВТМаршрутТочкаНачала.Остановка
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрутТочкаОкончания
ПО ВТВозможныеМаршруты.ОстановкаПрибытие = ВТМаршрутТочкаОкончания.Остановка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ВТПорядковыеНомера.ПорядковыйНомер КАК ПорядковыйНомер,
ВТПорядковыеНомера.Остановка
ПОМЕСТИТЬ ВТПерваяОстановка
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомера
УПОРЯДОЧИТЬ ПО
ПорядковыйНомер
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ВТПорядковыеНомера.ПорядковыйНомер КАК ПорядковыйНомер,
ВТПорядковыеНомера.Остановка
ПОМЕСТИТЬ ВТПоследняяОстановка
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомера
УПОРЯДОЧИТЬ ПО
ПорядковыйНомер УБЫВ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТРасстояния.ОстановкаОтправление КАК ОстановкаОтправление,
ВТРасстояния.ОстановкаПрибытие КАК ОстановкаПрибытие,
ЕСТЬNULL(ВТРасстояния.РасстояниеОтНачалаМаршрутаПрибытие, 0) - ЕСТЬNULL(ВТРасстояния.РасстояниеОтНачалаМаршрутаОтправление, 0) КАК Расстояние,
ПорядковыйНомерОстОтправление.ПорядковыйНомер КАК ПорядковыйНомерОтправление,
ПорядковыйНомерОстПрибытие.ПорядковыйНомер КАК ПорядковыйНомерПрибытие
ОстановкаОтправление.*,
ОстановкаПрибытие.*,
Расстояние,
ПорядковыйНомерОтправление,
ПорядковыйНомерПрибытие>
ИЗ
ВТРасстояния КАК ВТРасстояния
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ПорядковыйНомерОстОтправление
ПО ВТРасстояния.ОстановкаОтправление = ПорядковыйНомерОстОтправление.Остановка
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ПорядковыйНомерОстПрибытие
ПО ВТРасстояния.ОстановкаПрибытие = ПорядковыйНомерОстПрибытие.Остановка
ГДЕ
НЕ ВТРасстояния.ОстановкаОтправление ЕСТЬ NULL
ВЫБРАТЬ
ВТПерваяОстановка.Остановка,
ВТПерваяОстановка.Остановка,
NULL,
ВТПерваяОстановка.ПорядковыйНомер,
ВТПерваяОстановка.ПорядковыйНомер
ИЗ
ВТПерваяОстановка КАК ВТПерваяОстановка
ВЫБРАТЬ
ВТПоследняяОстановка.Остановка,
ВТПоследняяОстановка.Остановка,
NULL,
ВТПоследняяОстановка.ПорядковыйНомер,
ВТПоследняяОстановка.ПорядковыйНомер
ИЗ
ВТПоследняяОстановка КАК ВТПоследняяОстановка
Далее переходим к корректировке настроек СКД
показано, что мы для полей Остановка отправление, Остановка прибытие и Расстояние мы делаем пустые заголовки. Точнее один пробел. Т.к. пустой указать не удается.
Делаем упорядочивание представления:
Для реквизита ОстановкаОтправление - ПорядковыйНомерОтправление возр
Для реквизита ОстановкаПрибытие - ПорядковыйНомерПрибытие возр
Для реквизита Расстояние делаем набор свойств как на рисунке. Рис. 4.
А именно Размещение - Обрезать.
И минимальная и максимальная ширина равная - 9.12
На этом настройка набора данных завершена
Создаем ресурс - Расстояние
В выражении пишем:
Выбор Когда Представление(ОстановкаОтправление) = Представление(ОстановкаПрибытие) Тогда Представление(ОстановкаОтправление) Иначе Сумма(Расстояние) Конец
Рассчитываем по группировкам ОстановкаОтправление, ОстановкаПрибытие.
Пожалуй самое сложное было добиться результата.
Были созданы макет для группировки ОстановкаОтправления
Параметр уже был получен из запроса, я сделал запрет незаполненных значений и использование - всегда.
Настройки вывода отчета.
показано, что была использована для представления Таблица
Строки - Остановка прибытия
Колонки - Остановка отправления
Настраиваем внешний вид
Отключаем вывод итогов
Делаем заголовок- Таблица расстояний
Указываем что надо выводить параметры
Делаем условное оформление.
Указываем что цвет границы будет белым для всех строк у которых не заполнено расстояние.
И указываем что стиль границы сверху - будет без линии для тех полей, где Расстояние = ""
Вот собственно и все. В результате у меня получилась:
Это мой способ решения. На решение ушло около 3-х часов.
С радостью рассмотрю предложения по упрощению и улучшению данного решения.
Многим было интересна первая задача, которую отправили разработчикам для тестирования на проект Доминикана. В этой публикации я покажу вам само задание, а также решение. Сразу скажу, что решение не идеальное. Проект Доминикана поставил мне оценку — 3 балла. Если будут предложения об ускорении, то с радостью их рассмотрю.
Добрый день Коллеги.
Многим было интересна первая задача, которую отправили разработчикам для тестирования на проект Доминикана. В этой публикации я покажу вам самое задание, а так же решение. Сразу скажу, что решение не идеальное. Проект Доминикана поставил мне оценку — 3 бала. Если будут предложения об ускорении, то с радостью их рассмотрю.
Есть регистр сведений «Остановки по маршруту» в котором хранится информация о расстоянии от начальной до конечной остановки.
Требуется разработать отчет на СКД, который покажет расстояние между двумя остановками по маршруту.
Отчет представляет собой прямоугольный треугольник, на гипотенузе названия остановок по порядку. На пересечении горизонтальной и вертикальной линии от двух остановок заполнено значение, равное расстоянию между этими остановками. Например, расстояние между «Борок» и «Мологино» 6,3 км (Рисунок №2).
Важно: Отчет должен быть разработан без программного кода при помощи набора данных – Запрос. Текст запроса должен быть один.
Рис. №2 Отчет «Таблица расстояний».
Внимание, перед тем как читать дальше я рекомендую попробовать самостоятельно решить данную задачу.
Скачайте DT файл, создайте новый отчет, в котором постарайтесь решить самостоятельно задачу. Обещаю решение не оставит вас равнодушными.
Создаем текст запроса:
ВЫБРАТЬ
ОстановкиПоМаршруту.Остановка КАК Остановка,
ОстановкиПоМаршруту.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрута
ПОМЕСТИТЬ ВТМаршрут
Остановка.*,
РасстояниеОтНачалаМаршрута>
ИЗ
РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршруту
ГДЕ
ОстановкиПоМаршруту.Маршрут = &Маршрут
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОстановкиПоМаршруту.Остановка КАК Остановка,
СУММА(1) КАК ПорядковыйНомер
ПОМЕСТИТЬ ВТПорядковыеНомера
ИЗ
РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршруту
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрут
ПО (ВЫБОР
КОГДА ОстановкиПоМаршруту.РасстояниеОтНачалаМаршрута >= ВТМаршрут.РасстояниеОтНачалаМаршрута
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
ГДЕ
ОстановкиПоМаршруту.Маршрут = &Маршрут
СГРУППИРОВАТЬ ПО
ОстановкиПоМаршруту.Остановка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТПорядковыеНомераДополнительный.Остановка КАК ОстановкаОтправление,
ВТПорядковыеНомераОсновной.Остановка КАК ОстановкаПрибытие
ПОМЕСТИТЬ ВТВозможныеМаршруты
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомераОсновной
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ВТПорядковыеНомераДополнительный
ПО ВТПорядковыеНомераОсновной.ПорядковыйНомер > ВТПорядковыеНомераДополнительный.ПорядковыйНомер
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТВозможныеМаршруты.ОстановкаОтправление,
ВТВозможныеМаршруты.ОстановкаПрибытие,
ВТМаршрутТочкаНачала.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрутаОтправление,
ВТМаршрутТочкаОкончания.РасстояниеОтНачалаМаршрута КАК РасстояниеОтНачалаМаршрутаПрибытие
ПОМЕСТИТЬ ВТРасстояния
ИЗ
ВТВозможныеМаршруты КАК ВТВозможныеМаршруты
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрутТочкаНачала
ПО ВТВозможныеМаршруты.ОстановкаОтправление = ВТМаршрутТочкаНачала.Остановка
ЛЕВОЕ СОЕДИНЕНИЕ ВТМаршрут КАК ВТМаршрутТочкаОкончания
ПО ВТВозможныеМаршруты.ОстановкаПрибытие = ВТМаршрутТочкаОкончания.Остановка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ВТПорядковыеНомера.ПорядковыйНомер КАК ПорядковыйНомер,
ВТПорядковыеНомера.Остановка
ПОМЕСТИТЬ ВТПерваяОстановка
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомера
УПОРЯДОЧИТЬ ПО
ПорядковыйНомер
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
ВТПорядковыеНомера.ПорядковыйНомер КАК ПорядковыйНомер,
ВТПорядковыеНомера.Остановка
ПОМЕСТИТЬ ВТПоследняяОстановка
ИЗ
ВТПорядковыеНомера КАК ВТПорядковыеНомера
УПОРЯДОЧИТЬ ПО
ПорядковыйНомер УБЫВ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТРасстояния.ОстановкаОтправление КАК ОстановкаОтправление,
ВТРасстояния.ОстановкаПрибытие КАК ОстановкаПрибытие,
ЕСТЬNULL(ВТРасстояния.РасстояниеОтНачалаМаршрутаПрибытие, 0) — ЕСТЬNULL(ВТРасстояния.РасстояниеОтНачалаМаршрутаОтправление, 0) КАК Расстояние,
ПорядковыйНомерОстОтправление.ПорядковыйНомер КАК ПорядковыйНомерОтправление,
ПорядковыйНомерОстПрибытие.ПорядковыйНомер КАК ПорядковыйНомерПрибытие
ОстановкаОтправление.*,
ОстановкаПрибытие.*,
Расстояние,
ПорядковыйНомерОтправление,
ПорядковыйНомерПрибытие>
ИЗ
ВТРасстояния КАК ВТРасстояния
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ПорядковыйНомерОстОтправление
ПО ВТРасстояния.ОстановкаОтправление = ПорядковыйНомерОстОтправление.Остановка
ЛЕВОЕ СОЕДИНЕНИЕ ВТПорядковыеНомера КАК ПорядковыйНомерОстПрибытие
ПО ВТРасстояния.ОстановкаПрибытие = ПорядковыйНомерОстПрибытие.Остановка
ГДЕ
НЕ ВТРасстояния.ОстановкаОтправление ЕСТЬ NULL
ВЫБРАТЬ
ВТПерваяОстановка.Остановка,
ВТПерваяОстановка.Остановка,
NULL,
ВТПерваяОстановка.ПорядковыйНомер,
ВТПерваяОстановка.ПорядковыйНомер
ИЗ
ВТПерваяОстановка КАК ВТПерваяОстановка
ВЫБРАТЬ
ВТПоследняяОстановка.Остановка,
ВТПоследняяОстановка.Остановка,
NULL,
ВТПоследняяОстановка.ПорядковыйНомер,
ВТПоследняяОстановка.ПорядковыйНомер
ИЗ
ВТПоследняяОстановка КАК ВТПоследняяОстановка
Далее переходим к корректировке настроек СКД
показано, что мы для полей Остановка отправление, Остановка прибытие и Расстояние мы делаем пустые заголовки. Точнее один пробел. Т.к. пустой указать не удается.
Делаем упорядочивание представления:
Для реквизита ОстановкаОтправление — ПорядковыйНомерОтправление возр
Для реквизита ОстановкаПрибытие — ПорядковыйНомерПрибытие возр
Для реквизита Расстояние делаем набор свойств как на рисунке. Рис. 4.
А именно Размещение — Обрезать.
И минимальная и максимальная ширина равная — 9.12
На этом настройка набора данных завершена
Создаем ресурс — Расстояние
В выражении пишем:
Выбор Когда Представление(ОстановкаОтправление) = Представление(ОстановкаПрибытие) Тогда Представление(ОстановкаОтправление) Иначе Сумма(Расстояние) Конец
Рассчитываем по группировкам ОстановкаОтправление, ОстановкаПрибытие.
Пожалуй самое сложное было добиться результата.
Были созданы макет для группировки ОстановкаОтправления
Параметр уже был получен из запроса, я сделал запрет незаполненных значений и использование — всегда.
Настройки вывода отчета.
показано, что была использована для представления Таблица
Строки — Остановка прибытия
Колонки — Остановка отправления
Настраиваем внешний вид
Отключаем вывод итогов
Делаем заголовок- Таблица расстояний
Указываем что надо выводить параметры
Делаем условное оформление.
Указываем что цвет границы будет белым для всех строк у которых не заполнено расстояние.
И указываем что стиль границы сверху — будет без линии для тех полей, где Расстояние = «»
Вот собственно и все. В результате у меня получилась:
Это мой способ решения. На решение ушло около 3-х часов.
С радостью рассмотрю предложения по упрощению и улучшению данного решения.
Читайте также: