1. Шёпот теней 1765 31.01.13 12:27 Сейчас в теме

Конкурс на "Лучший вопрос" и далее "Лучший ответ"

Конкурс:

1 Вопрос: "Ход конём" см. комментарий (42) ... Решения: (49)
2 Вопрос: "Найдите кратчайший путь коня между двумя заданными клетками на шахматной доске." см. комментарий (76) Решения: (98)
3. Вопрос: Найти максимальное вхождение. см. комментарий (107)

Благодарность за финансовую (стартмани) поддержку проекта anig99, AnryMc, DitriX, juntatalor, Bukaska, alexk-is, poligraff !


Конкурс:

1. Задайте "лучший вопрос" по 1С
2. Ответьте на "лучший вопрос"


Ответ должен быть оформлен в виде обработки.
Обработку выствить в своих "Публикациях" указать ссылку на данный "Конкурс", здесь указать ссылку на свою "публикацию".

с уважением "Шёпот теней" в миру Александр Шишкин ...

"Лучший" - выбирается обсуждением !
"Лучшим" - приз "мани ИС" !


... вот ...
Вознаграждение за ответ
Показать полностью
Найденные решения
252. m..adm 197 23.11.15 02:24 Сейчас в теме
Мои обработки по конкурсу:
По 1 и 2 заданию: http://infostart.ru/public/421101/
по 3-му заданию: http://infostart.ru/public/421107/

Подходит реализация?
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
162. AnryMc 723 28.04.13 16:03 Сейчас в теме
(161) stagov,

Я открою его Екселом

I7 - начало моих данных
Прикрепленные файлы:
163. stagov 7 28.04.13 16:18 Сейчас в теме
Прекрасно. Путь коня увеличился на пару клеток.
Ну в 2 мин. никак...

Т.е. открываем Ексел, потом копируем и вставляем в обработку "ЗагрузкаДанныхИзТабличногоДокумента"!?
Правильно!?
Тогда второй вопрос.
Сколько бабульке нужно времени на переклацыване 1500 карточек контрагентов для заполнения обязательных реквизитов коим является "Договор"
164. AnryMc 723 28.04.13 17:13 Сейчас в теме
(163) stagov,

Вы себе противоречите:
У меня на решение вопроса пошло мин 15.


При чём бабауля?
165. stagov 7 28.04.13 17:19 Сейчас в теме
(164) AnryMc,
Просто если уже делать, то делать надо хорошо. Бабуле с этим жить и работать
Вы кстати за 2мин не успеете скопировать из ексел и вставить в загрузку
167. AnryMc 723 28.04.13 17:38 Сейчас в теме
(165) stagov,

Я не собираюсь копировать. Достаточно удалить с 2 по 6 строку. Это максимум 5 секунд. Включая Ctrl+S и Alt+F4
168. stagov 7 28.04.13 17:51 Сейчас в теме
(167) AnryMc,
1-1,5 мин - будет считывать файл загрузка
и потом вернуть названия колонок....
к тому же потеряется адрес, телефон

Но путь коня - может быть проще и лучше.
Штатными средствами УТ. Без ексел (которого может не оказаться)и без ЗагрузкаДанныхИзТабличногоДокумента (которой не каждый умеет пользоваться).
169. AnryMc 723 28.04.13 19:16 Сейчас в теме
(168) stagov,

К сожалению с УТ почти не работал. Как то Бух и ЗУП...
170. stagov 7 29.04.13 00:11 Сейчас в теме
(169) AnryMc,
В этих программах спр.контрагенты практически идентичны. Т.е. решение для всех.
+ Какой замечательный диспут у нас получился.
- Тема загрузки из ОПЗ мало кому пригодится
- Никто более не заинтересовался темой ответа на мой вопрос.

А решение вопроса более логическое чем супер программерское. Что то вроде использования подручных средств для достижения цели в поставленных задачах с минимальными трудозатратами и более того минимальными знаниями кода.
166. stagov 7 28.04.13 17:22 Сейчас в теме
Когда на пустом месте получается простая и при этом душевная тема - это просто банально радует.
173. CheBurator 3422 30.04.13 16:54 Сейчас в теме
Вы бы лучше прикладные задачи решали.
Задача: оптимизация расстановки товара на складе с построением оптимального маршрута передвижения товара из неоптимальной расстановки в оптимальную расстановку.

Дано:
- перечень ячеек (пусть будет нумерация "проход-стойка-ярус", где проход = "улица", "стойка" = многоэтажный дом, "ярус"=этаж), для упрощения считаем что проход и ярус - фиксированные значения.
- в ячейке всегда не более одного артикула (возможна пустая ячейка);
- артикул всегда не более чем в одной ячейке;
- расположение ячеек - линейное, одна за другой (проход);
- нумерация ячеек - линейная (но не обязательно непрерывная, т.е. ячейка с большим номером стойки всегда идет за ячейкой с меньшим номером стойки);
- каждый артикул имеет показатель "вес", который характеризует важность артикула, артикулы с большим весом должны стоять ближе к началу прохода; разные артикулы могут иметь одинаковые веса; артикул может иметь нулевой вес.
- итого имеем: неупорядоченную по весу (упорядоченную по стойкам) последовательность Артикул-Ячейка-Вес

В наличии имеется промежуточный буфер неограниченного размера.

Требуется:
- получить упорядоченную по номерам стоек и весу последовательность артикулов;
- получить план перемещения артикулов из неупорядоченного в упорядоченную с минимумом перемещений при неограниченном буфере (вариант более узкой задачи - то же самое, но при ограничении размера буфера);
- или, на крайняк вычислить хотя бы минимальное число перемещений (само число таких перемещений!), чтобы оценивать оптимальность получившегося плана мперемещения.

Последовательность артикулов с одинаковыми весами в упорядоченном построении - непринципиальна.

Пример:
.
Исходная неоптимальная расстановка:
Товар1, 6-2-1 (вторая стойка), вес=30
Товар2, 6-4-1 (четвертая стойка), вес=60.
.
Результирующая оптимальная расстановка
Товар2, 6-2-1 (вторая стойка), вес=60
Товар1, 6-4-1 (четвертая стойка), вес=30.
.
Минимальный план перемещений: 3 перемещения
1. 6-2-1(Товар1,30) -> буфер
2. 6-4-1(Товар2,60) -> 6-2-1(пусто)
3. буфер(Товар1,30) -> 6-4-1(пусто)
.
По сути - задача на сортировку массива.
176. titakovserg 13.05.13 10:12 Сейчас в теме
(173) CheBurator, ну на счёт того, что это задача на сортировку не согласен, т.к. задача на сортировку требует лишь конечную отсортированую последовательность, а в твоей задаче ещё нужна последовательность перестановок на сколько я понял (получить план перемещения артикулов из неупорядоченного в упорядоченную с минимумом перемещений). Несколько лет назад (когда писал бакалаврскую) решал похожую задачку. Тоже могу предложить её на рассмотрение.
Итак задача. На железнодорожное предприятие приходит состав в котором N вагонов. Вагоны принадлежат к разным группам и перемешаны, т.е. не упорядочены по группам. Необходимо получить последовательность вагонов, упорядоченную по группам. Например был состав: "2-1-3-1-4-5-2-1-3-2-4-5" необходимо получить состав: "1-1-1-2-2-2-3-3-4-4-5-5". В распоряжении имеется развязка из K тупиков, каждый из которых ограниченной длины. При этом количество вагонов, которые можно установить на один тупиковый путь ограничено. При этом суммарная длина тупиков L не на много превышает длину состава (под длиной подразумевается максимально возможное количество установленных вагонов), но должна быть не меньше. Количество групп в составе = М. Количество тупиковых путей = K. При этом выполняется неравенство 2<K<M.
Итак имеем:
1. K тупиковых путей. Для каждого пути известна его длина в вагонах: L1, L2,...,Lk
2.Состав произвольной длины N, при этом N<СУММ(Li)
3. Количество групп в составе = М.
4. 2<K<M
5. Локомотив может заезжать на тупиковый путь только с одной стороны, т.е. вагоны собираются на пути по принципу стека.
Получить план перестановок вагонов для получения упорядоченной последовательности при локомотиве. Количество перестановок должно быть как можно меньшим.
177. CheBurator 3422 13.05.13 11:21 Сейчас в теме
(176) возможно, что и не на сортировку. но имхо, очень похоже - стоит та же самая задача - сделать отсортированную последовательность с минимумом затрат (т.е. самую быструю)
.
а по вагонам - знакомо.. знакомо... у меня по отцовской линии вся плеяда - железнодорожники
174. CheBurator 3422 30.04.13 17:05 Сейчас в теме
Исходная НЕОПТИМАЛЬНАЯ расстановка
№п/п Артикул Ячейка вес
1 634526 06-001-01 3
2 634536 06-003-01 4
3 638472 06-005-01 18
4 634560 06-007-01 6
5 634572 06-009-01 3
6 637368 06-011-01 12
7 638010 06-013-01 19
8 638003 06-015-01 19
9 638005 06-017-01 12
10 631442 06-021-01 10
11 637252 06-023-01 10
12 637354 06-025-01 10
13 637208 06-027-01 6
14 631380 06-029-01 18
15 637212 06-031-01 2
16 637216 06-033-01 12
17 637218 06-035-01 6
18 637222 06-043-01 6
19 637234 06-045-01 2
20 637236 06-047-01 6
21 637240 06-049-01 2
22 637248 06-051-01 2
23 637210 06-053-01 3
24 637306 06-055-01 2
25 637313 06-057-01 3
26 637314 06-059-01 5
27 637315 06-061-01 10
28 637316 06-063-01 4
29 637317 06-065-01 2
30 308830 06-073-01 4
31 637355 06-075-01 10
32 637364 06-077-01 9
33 637365 06-079-01 4
34 730754 06-081-01 1
35 895020 06-083-01 2
36 637380 06-085-01 1
37 637382 06-087-01 8
38 637384 06-089-01 6
39 895010 06-091-01 2
40 637394 06-093-01 6
41 895022 06-095-01 2
42 630050 06-103-01 6
43 895026 06-105-01 2
44 895024 06-107-01 2
45 894810 06-109-01 4
46 614518 06-111-01 1
47 614520 06-113-01 1
48 637206 06-115-01 3
49 630047 06-117-01 6
50 637820 06-119-01 3
51 637810 06-121-01 4
52 637835 06-123-01 3
53 637838 06-125-01 3
54 638002 06-127-01 3
55 340136 06-129-01 1
56 638004 06-131-01 6
57 729486 06-133-01 1
58 638006 06-135-01 4
59 638008 06-137-01 5
60 638009 06-139-01 8
61 638014 06-143-01 3

Вариант ОПТИМАЛЬНОЙ расстановки

№п.п Артикул Ячейка вес
1 638010 06-001-01 19
2 638003 06-003-01 19
3 638472 06-005-01 18
4 631380 06-007-01 18
5 637216 06-009-01 12
6 637368 06-011-01 12
7 638005 06-013-01 12
8 637355 06-015-01 10
9 637315 06-017-01 10
10 631442 06-021-01 10
11 637252 06-023-01 10
12 637354 06-025-01 10
13 637364 06-027-01 9
14 638009 06-029-01 8
15 637382 06-031-01 8
16 637208 06-033-01 6
17 637218 06-035-01 6
18 637222 06-043-01 6
19 634560 06-045-01 6
20 637236 06-047-01 6
21 638004 06-049-01 6
22 630047 06-051-01 6
23 630050 06-053-01 6
24 637394 06-055-01 6
25 637384 06-057-01 6
26 637314 06-059-01 5
27 638008 06-061-01 5
28 637316 06-063-01 4
29 634536 06-065-01 4
30 308830 06-073-01 4
31 638006 06-075-01 4
32 637810 06-077-01 4
33 637365 06-079-01 4
34 894810 06-081-01 4
35 637313 06-083-01 3
36 637210 06-085-01 3
37 634572 06-087-01 3
38 634526 06-089-01 3
39 638014 06-091-01 3
40 638002 06-093-01 3
41 637838 06-095-01 3
42 637835 06-103-01 3
43 637820 06-105-01 3
44 637206 06-107-01 3
45 895024 06-109-01 2
46 895026 06-111-01 2
47 895022 06-113-01 2
48 895010 06-115-01 2
49 895020 06-117-01 2
50 637317 06-119-01 2
51 637306 06-121-01 2
52 637248 06-123-01 2
53 637240 06-125-01 2
54 637234 06-127-01 2
55 637212 06-129-01 2
56 637380 06-131-01 1
57 729486 06-133-01 1
58 340136 06-135-01 1
59 614520 06-137-01 1
60 614518 06-139-01 1
61 730754 06-143-01 1
.
на таком примере у меня следующие результаты:
.
Требуемый размер буфера = 13
Мест без движения = 13
Количество перестановок = 71
.
Ваши варианты?
175. CheBurator 3422 30.04.13 17:13 Сейчас в теме
оценку сверху получить нетрудно, в варианте когда все ячейки заняты (как в данном примере) - оценка сверху = 2*КолвоЯчеек (выставить все в буфер, из буфера по убыванию весов расставить в ячейки)
178. Шёпот теней 1765 14.05.13 08:34 Сейчас в теме
Сообщане ИС !!!

ужжж очень "сложные" задачи в "описании" даёте ... может проще разбить задачу на подзадачи, или упростить условия: например, задача по сортировки вагонов и артикулов напоминает мне "игру" - "Перенеси пирамиду" - сейчас их делают сложными, количество столбов и количество переносимых колец бесконечно ...

кстати вот и новая задача конкурса: напиши игру "Перенеси пирамиду" !


... вот ...

п.с. а там и до карточных пасьянсов недалеко ... !

...
179. CheBurator 3422 14.05.13 22:31 Сейчас в теме
(178) мну играться некогда. реальные задачи. реальные проблемы. раз я ее решил со своей квалификацией - наверняка способны решить и другие. не решают - а) квалификация низкая (ничего не могу с этим сделать) б) нафиг не надо/не интересно (а я не тамада-затейник).
180. Шёпот теней 1765 15.05.13 08:13 Сейчас в теме
... алгоритм игры, в целом, не отличается от реальной модели, только постановка задачи проще ...

твоя задача слишком ужжж конкретна, привязана к "нестандартным" условиям ... не зря же существует проблема в "постоновке задач" и на её решение выделются специальные люди и ресурсы ... игра же позволяет обкатать способы и алгоритмы решений ...

... вот ...
181. CheBurator 3422 15.05.13 23:50 Сейчас в теме
(180) меня около птиц задачи не привязанные к конкретным условиям. иногда видишь универсальную задачу - вроде что надо, а привязать нет возможности - слишком уж универсальан. и эта универсальность нахрен сьедает всю полезность.
.
а у мну задача - любому 1Снику который хоть чуток имел дело с расстановокй товара/склада - проста и понятна.
182. titakovserg 17.05.13 09:49 Сейчас в теме
(180) Шёпот теней, могу согласиться с тем, что моя задача действительно чем-то похожа на перенос пирамиды. Но существенная разница в том, что все кольца пирамиды помещаются на каждой из вертикальных палочек (по крайней мере так было, когда я играл в эту игру), а все вагоны не помещаются ни на одном из путей. Их нужно собрать при локомотиве.
183. Шёпот теней 1765 17.05.13 10:24 Сейчас в теме
(182) всё зависит от "правил игры" ...

проблема часто не в алгоритмых, их уже много, почти все описаны ... проблема в описание математическом языком, действующей модели - существующего материально порядка (длинна путей, емкость вагонов, адресация, последовательность и прочее и прочее и прочее). т.е. "дьявол" и все трудности кроятся в деталях ...


... вот ...

п.с. нам всем кажется что "мы" единственные и неповторимые ...

...
184. titakovserg 17.05.13 11:44 Сейчас в теме
(183) Шёпот теней, алгоритмы расстановок вагонов были безусловно, и я их исследовал, но фишка имеено в деталях, о которых Вы говорите, из-за которых алгоритмы были не применимы. Отсюда и постановка задачи со ВСЕМИ ДЕТАЛЯМИ. (единственным и неповторимым я себя не считаю. Не много толку от того, что учась в универе я решал классные практические задачи. А сейчас обычный штатный 1С-ник, и бугхалтерки мне мозг выносят)
186. CheBurator 3422 17.05.13 18:26 Сейчас в теме
(184) поддерживаю твое высказывание на 100500!
185. Шёпот теней 1765 17.05.13 12:25 Сейчас в теме
(183) ...

высказывание: жизнь в близи 0 трагедния, из далека - комедия ..
или : "Убийство одного человека - трагедия, убийство миллионов - статистика"
или : лгко было на бумаге, да забыли про овраги ..

и т.д.

тем не менее: что может быть лучше чем хорошая теория .. ? !!!

п.с. согласен с вами: реальный опыт - БЕСЦЕНЕН !!!

...
188. Шёпот теней 1765 30.09.15 13:22 Сейчас в теме
189. Шёпот теней 1765 01.10.15 08:39 Сейчас в теме
подниму тему ... на "может быть" ...
192. Ivanovag123 01.10.15 14:32 Сейчас в теме
Шёпот, неужели вопрос не понравился? :)
193. AlexInqMetal 68 01.10.15 14:36 Сейчас в теме
(192) Ivanovag123, соединение по номенклатуре и дате сделать
194. Ivanovag123 01.10.15 14:46 Сейчас в теме
201. Ivanovag123 02.10.15 11:43 Сейчас в теме
Ребят, у меня родилась дикая идея...
А что, если в СКД назначить Ценам роль Остаток... :))
Теоретически это ведь правильно...
205. Ivanovag123 02.10.15 12:52 Сейчас в теме
konstruktiv, как думаешь, можно так (201) сделать?
(просто до сих пор помню твою супер идею про назначение роли "Измерение" заказам)
206. konstruktiv 02.10.15 13:29 Сейчас в теме
(205) Ivanovag123, мне кажется в этом случае можно интерактивной настройкой СКД не обойдешься, нужна таблица со всеми днями, к ней клеить остатки, учесть ситуацию с отсутствием оборотов, и потом уже к этой таблице цены либо "множественным срезом последних" прямо в запросе, либо 2м вариантом с мисты
207. Ivanovag123 02.10.15 13:44 Сейчас в теме
(206) konstruktiv, спасибо что откликнулся.
Но посмотри на второй скрин в (203)!!! Там почти получилось! (Цены там на каждую дату! Даже на те даты, где оборотов не было, и в ИТОГО правильно!).
И ещё. Сделал прямую связь между Остатками и Ценами. Результат один в один, как и в (203)! (поясню - теперь там нет никаких "сложных" условий по связям!!!, а результат абсолютно тот же!!!).

Отчёт во вложении.
Прикрепленные файлы:
Цены4.erf
203. Ivanovag123 02.10.15 12:19 Сейчас в теме
Попробовал сделать Цены с ролью Остатки...

Вот что получилось (скрины и отчёт во вложениях)

В ИТОГАХ кстати всё правильно,- берутся последние цены. Короче, думаю, этот вариант стоит "дожать". Пока он лучший.
Прикрепленные файлы:
Цены2_ЦенаКакОстаток.erf
210. Шёпот теней 1765 06.10.15 08:18 Сейчас в теме
211. konstruktiv 06.10.15 10:36 Сейчас в теме
(210) Шёпот теней, а на задачу про телефонный номер можно решение? Если можно, то вот:
ВЫБРАТЬ
	"0" КАК Цифра,
	0 КАК X,
	3 КАК Y
ПОМЕСТИТЬ ИсходныеДанные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"1",
	0,
	0

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"2",
	1,
	0

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"3",
	2,
	0

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"4",
	0,
	1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"5",
	1,
	1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"6",
	2,
	1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"7",
	0,
	2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"8",
	1,
	2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	"9",
	2,
	2
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.Цифра,
	ИсходныеДанные.X,
	ИсходныеДанные.Y
ПОМЕСТИТЬ ПервыеЦифры
ИЗ
	ИсходныеДанные КАК ИсходныеДанные
ГДЕ
	ИсходныеДанные.Цифра = &ПерваяЦифра
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.X КАК X,
	ИсходныеДанные.Y КАК Y,
	ИсходныеДанные.Цифра КАК СледующаяЦифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра КАК Номер
ПОМЕСТИТЬ ВторыеЦифры
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y - 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПервыеЦифры.Цифра + ИсходныеДанные.Цифра
ИЗ
	ПервыеЦифры КАК ПервыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПервыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ПервыеЦифры.Y - 2 = ИсходныеДанные.Y)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.X КАК X,
	ИсходныеДанные.Y КАК Y,
	ИсходныеДанные.Цифра КАК СледующаяЦифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра КАК Номер
ПОМЕСТИТЬ ТретьиЦифры
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y - 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ВторыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ВторыеЦифры КАК ВторыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ВторыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ВторыеЦифры.Y - 2 = ИсходныеДанные.Y)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.X КАК X,
	ИсходныеДанные.Y КАК Y,
	ИсходныеДанные.Цифра КАК СледующаяЦифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра КАК Номер
ПОМЕСТИТЬ ЧетвертыеЦифры
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X + 1 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y - 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X + 2 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X + 2 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X + 1 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X - 1 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X - 2 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X - 2 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ТретьиЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ТретьиЦифры КАК ТретьиЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ТретьиЦифры.X - 1 = ИсходныеДанные.X)
			И (ТретьиЦифры.Y - 2 = ИсходныеДанные.Y)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.X КАК X,
	ИсходныеДанные.Y КАК Y,
	ИсходныеДанные.Цифра КАК СледующаяЦифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра КАК Номер
ПОМЕСТИТЬ ПятыеЦифры
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y - 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ЧетвертыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ЧетвертыеЦифры КАК ЧетвертыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ЧетвертыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ЧетвертыеЦифры.Y - 2 = ИсходныеДанные.Y)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.X КАК X,
	ИсходныеДанные.Y КАК Y,
	ИсходныеДанные.Цифра КАК СледующаяЦифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра КАК Номер
ПОМЕСТИТЬ ШестыеЦифры
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y - 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ПятыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ПятыеЦифры КАК ПятыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ПятыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ПятыеЦифры.Y - 2 = ИсходныеДанные.Y)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИсходныеДанные.X КАК X,
	ИсходныеДанные.Y КАК Y,
	ИсходныеДанные.Цифра КАК СледующаяЦифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра КАК Номер
ПОМЕСТИТЬ СедьмыеЦифры
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y - 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X + 2 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X + 1 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y + 2 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y + 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X - 2 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y - 1 = ИсходныеДанные.Y)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ИсходныеДанные.X,
	ИсходныеДанные.Y,
	ИсходныеДанные.Цифра,
	ШестыеЦифры.Номер + ИсходныеДанные.Цифра
ИЗ
	ШестыеЦифры КАК ШестыеЦифры
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДанные КАК ИсходныеДанные
		ПО (ШестыеЦифры.X - 1 = ИсходныеДанные.X)
			И (ШестыеЦифры.Y - 2 = ИсходныеДанные.Y)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КОЛИЧЕСТВО(*) КАК ВсегоНомеров
ИЗ
	СедьмыеЦифры КАК СедьмыеЦифры
Показать
Шёпот теней; +1 Ответить
212. Шёпот теней 1765 06.10.15 10:55 Сейчас в теме
(211) konstruktiv,

из (1) Ответ должен быть оформлен в виде обработки.
Обработку выставить в своих "Публикациях" указать ссылку на данный "Конкурс", здесь указать ссылку на свою "публикацию".

в публикации описать алгоритм выполнения задачи. прямо как в школе:
1.Задача
2. Описание алгоритма решения "Задачи" (какие законы, методы, вычисления, алгоритмы использовались при написании и пр. и т.д.)
3. Решение оформленное по условию.

с уважением "Шёпот теней" ...

... БУДУждатьВОТ ...
213. DJDUH 17 06.10.15 22:15 Сейчас в теме
Привет всем!
Задам на первый взгляд банальный вопрос, который мне задавали на собеседовании, но я так и не знаю верного ответа)))
Вопрос: "Что лучше Структура или Соответствие" ?
214. Шёпот теней 1765 07.10.15 08:27 Сейчас в теме
(213) DJDUH,

функция или процедура ?

наполовину пустой стакан или наполовину полный ?

и т.д.

ответ на ваш вопрос можно пытаться найти здесь: http://infostart.ru/public/142517/ ...
по скорости работы здесь: http://www.develplatform.com/2013/01/blog-post_22.html ...

... ЕСТЬответЕСТЬ ...
215. tango 484 07.10.15 09:17 Сейчас в теме
(214) Шёпот теней, я бы сказал - "справочник или документ" :))
что лучше, мягкое или теплое?
234. ture 565 23.10.15 18:01 Сейчас в теме
А вообще, по теме топика, это не может найти отзыв в среде профи, т.к. одно дело задачку олимпиадную решить за денюшку или на интерес разок-другой и совсем другое поделиться секретами, финтами, фишками и пр. да еще без всяких выгод для себя. Это же не выступление перед аудиторией на форуме, где связи устанавливают ради в конечном счете денег. Профессиональные секреты делают нас дороже и важнее. А задачек олимпиадных полно на соответствующих сайтах.

Что же остается? Можно понудеть в надежде, что подвернется удачная возможность закрыть тему или она разделит позорное висение темы "Предлагаю сотрудничество программистам в сфере ВЭД ".
235. ya.Avoronov 109 23.10.15 19:01 Сейчас в теме
Ответ на 3-ю задачу:

        стр = "требуемый текст, выведи его на форму документа, например требуемый текст = бла бла блаааа"
	Результат = Новый ТаблицаЗначений;
	Результат.Колонки.Добавить("Слово");
	Результат.Колонки.Добавить("Длина");
	Результат.Колонки.Добавить("Количество");
	
	RegExp = Новый COMОбъект("VBScript.RegExp");
	RegExp.MultiLine = Истина;
	RegExp.Global = Истина;
	RegExp.Pattern = "[^А-я]";
	стр = RegExp.Replace(НРег(СокрЛП(стр)), "");
	
	Для позиция = 1 По СтрДлина(стр) Цикл
		Для количество = 1 По СтрДлина(стр) - позиция + 1 Цикл
			слово = Сред(стр, позиция, количество);			
			н = Результат.Добавить();
			н.Слово = слово;
			н.Длина = СтрДлина(слово);
			н.Количество = 1;
		КонецЦикла;
	КонецЦикла;
	
	Результат.Свернуть("Слово, Длина", "Количество");
	Результат.Сортировать("Количество Убыв, Длина Убыв, Слово Возр");
	
	Для Каждого х из Результат Цикл
		Если х.Количество > 1 Тогда
			Сообщить(х.Слово + " - " + х.Количество + " раз");
		КонецЕсли;	
	КонецЦикла;	

Показать


Спасибо.
Прикрепленные файлы:
ПоискВложений_Воронов.epf
Шёпот теней; +1 Ответить
237. Шёпот теней 1765 24.10.15 02:01 Сейчас в теме
(235) ya.Avoronov, сможете улучшить время работы вашей программы ? на N-ое количество процентов ?

это задача из статистики. она также решается всеми архиваторами файлов.

... вот ...

п.с. скачал ваши обработки (6 мани).

...
243. ture 565 29.10.15 17:33 Сейчас в теме
Чтоб быть не голословным... вот опять "свалилась" будь ее не ладна задача. Я ее привожу, чтоб показать, какое это издевательство над школьниками. Ведь только соску плюнули и давай им медали срывай. По сути решить мало, надо еще объяснить. И вот здесь почему-то все думают, что время резиновое.

В небоскребе n этажей. Известно, что если уронить стеклянный шарик с этажа номер p, и шарик разобъется, то если уронить шарик с этажа номер p+1, то он тоже разобъется. Также известно, что при броске с последнего этажа шарик всегда разбивается.Вы хотите определить минимальный номер этажа, при падении с которого шарик разбивается. Для проведения экспериментов у вас есть два шарика. Вы можете разбить их все, но в результате вы должны абсолютно точно определить этот номер.
Определите, какого числа бросков достаточно, чтобы заведомо решить эту задачу.
Формат входных данных
Программа получает на вход количество этажей в небоскребе.
Формат выходных данных
Требуется вывести наименьшее число бросков, при котором можно всегда решить задачу.
Примечание
Комментарий к первому примеру. Нужно бросить шарик со 2-го этажа. Если он разобъется, то бросим второй шарик с 1-го этажа, а если не разобъется - то бросим шарик с 3-го этажа.
Подсказки
1. Как следует действовать, если шарик был бы только один?
2. Пусть шариков два и мы бросили один шарик с этажа номер k. Как мы будем действовать в зависимости от того, разобъется ли шарик или нет?
3. Пусть f(n) - это минимальное число бросков, за которое можно определить искомый этаж, если бы в небоскребе было n этажей. Выразите f(n) через значения f(a) для меньших значений a.
Sample Input 1:
4
Sample Output 1:
2

Sample Input 2:
5
Sample Output 2:
3

Чтоб жизнь медом не казалась, скажу что есть вариант:
Sample Input :
7
Sample Output :
3

Как надоест головой ап стол долбить, можно поискать про обезьян аналог. Или стратегию на dxdy. Задача в общем не новая.. ну для студентов, но ведь не для школьников!
244. Шёпот теней 1765 30.10.15 08:15 Сейчас в теме
(243) ture, детская задача для тех кто знает математику !!! ))))

самое первое что пришло в голову это метод решения - выбор середины, потом опять середина и так далее до получения (забыл как сам метод называется, подскажите, что-то из "пределов"). Сразу можно вычислить необходимое количество шариков для решения задачи и скорость решения в зависимости от высоты здания (здесь здание дискретно).

... МатематикаЦаирицаНаук ...
246. tango 484 30.10.15 09:17 Сейчас в теме
(243) ture, программирование здесь вообще ни при чем
как и в про счастливые билетики
247. ture 565 30.10.15 11:19 Сейчас в теме
(246) tango, если уж так смело утверждать, то можно на олимпиады вообще не ходить, потому что там каждая задача с таким ярлыком будет.

(244) Шёпот теней, я не смог внятно и по полочкам все объяснить мальцу. Но меня порадовала реакция здесь. Собственно именно благодаря такой реакции, а вернее того, что будет дальше, и живем пока. Лучшая стратегия у меня выработалась такая, подождать разведки и первых результатов. Если справятся, значит все пока доступно, а если нет, то готовиться, т.к. сейчас пойдут трясти тех, кто посолидней. Это я про работу сейчас... везде возникают трудности ведь. Хорошо это придумали делить людей по специальностям, можно не знать всего и получать свои законные.
248. Шёпот теней 1765 30.10.15 11:27 Сейчас в теме
(247) ture, ну да ... ну, да !

сказать человеку что он "какашка" и смотреть как он из этого выпутается ...

не интересно !!!
249. tango 484 31.10.15 19:36 Сейчас в теме
(247) ture, ну, не "смелость", а чуть-чуть гиперболы :)
разумеется, рекурсия - это программирование
но программирование - это не рекурсия
250. areavel 03.11.15 11:37 Сейчас в теме
Да уж, тут можно дооолго просидеть над такими задачами.
251. ture 565 04.11.15 14:50 Сейчас в теме
(250) areavel, да не. Они решаются, даже легко, просто важен контекст, в котором задача подается. Т.е. Я хочу сказать, что для программистов с уклоном на всякие О(хз), это ерунда, т.к. Тривиально, а вот в контексте 1с это выглядит как жестокость или хамство непотребное. Каждому занятию - свой круг и свои задачи. Программисту 1с это просто как от влечься от работы и развеяться.
252. m..adm 197 23.11.15 02:24 Сейчас в теме
Мои обработки по конкурсу:
По 1 и 2 заданию: http://infostart.ru/public/421101/
по 3-му заданию: http://infostart.ru/public/421107/

Подходит реализация?
253. TVA_11 23.11.15 08:59 Сейчас в теме
Когда в России победит правда, и что нужно для этого делать?
254. ture 565 23.11.15 17:10 Сейчас в теме
(253) TVA_11, Вы наивны. Или еще хуже расточительны, если чем-то делитесь за пустые обещания.
255. lefthander 23.11.15 23:04 Сейчас в теме
(253) а кого должна победить правда?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант-аналитик 1С
Санкт-Петербург
зарплата от 70 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Разработчик 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день