- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Заказ,
| ЕСТЬNULL(ВложенныйЗапрос.ВРезерве, 0) + ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВРезервеОстаток, 0) КАК СвободныйОстаток
|ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ВложенныйЗапрос.Ссылка КАК Ссылка,
| ВложенныйЗапрос.Заказ КАК Заказ,
| СвободныеОстаткиТоваровНаСкладах.ВРезерве КАК ВРезерве,
| ВложенныйЗапрос.Размер КАК Размер
| ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Ссылка КАК Ссылка,
| ЗаказПокупателя.Ссылка КАК Заказ,
| ВЫБОР
| КОГДА &Размер = ЗНАЧЕНИЕ(Справочник.Размер.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Справочник.Размер.ПустаяСсылка)
| ИНАЧЕ &Размер
| КОНЕЦ КАК Размер
| ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ГДЕ
| Номенклатура.Ссылка = &Номенклатура
| И ЗаказПокупателя.Ссылка = &Ссылка) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстаткиТоваровНаСкладах КАК СвободныеОстаткиТоваровНаСкладах
| ПО ВложенныйЗапрос.Ссылка = СвободныеОстаткиТоваровНаСкладах.Номенклатура
| И ВложенныйЗапрос.Заказ = СвободныеОстаткиТоваровНаСкладах.Регистратор
| И ВложенныйЗапрос.Размер = СвободныеОстаткиТоваровНаСкладах.Размер
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Заказ,
| СвободныеОстаткиТоваровНаСкладах.ВРезерве,
| ВложенныйЗапрос.Размер) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстаткиТоваровНаСкладах.Остатки(
| ,
| Склад = &Склад
| И Организация = &Организация) КАК СвободныеОстаткиТоваровНаСкладахОстатки
| ПО ВложенныйЗапрос.Размер = СвободныеОстаткиТоваровНаСкладахОстатки.Размер
| И ВложенныйЗапрос.Ссылка = СвободныеОстаткиТоваровНаСкладахОстатки.Номенклатура
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Заказ,
| ЕСТЬNULL(ВложенныйЗапрос.ВРезерве, 0) + ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВРезервеОстаток, 0)" );
Запрос.УстановитьПараметр("Номенклатура",ТекущийЭлемент.ТекущаяСтрока.Номенклатура);
Запрос.УстановитьПараметр("Размер",ТекущийЭлемент.ТекущаяСтрока.Размер);
Запрос.УстановитьПараметр("Склад",Склад);
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Запрос.УстановитьПараметр("Организация",Ссылка.Организация);
Выборка = Запрос.Выполнить().Выбрать();
Человек, написавший такой запрос явно был с перепоя. С учетом его двухлетнего опыта программирования в 1С - никогда бы на него не подумал... но факт.
kyzi007 31.01.2012 16:27 # 0
Я когда вижу 1c тут мне обычно хочется убиться чтобы не знать что на свете есть такое, но это уже точно придет ко мне в ночных кошмарах.
Добавьте сюда кнопку развидеть...
guest 27.03.2012 06:43 # +1
Круто! А зачем ходишь в этот раздел на ресурсе? Из идейных соображений? "Ежики плакали и кололись, но продолжали есть кактусы"? Ну-ну. "Мы в восхищении!" (с)
Если серьезно, давайте вспомним, для чего вообще придумали 1С - для автоматизации учета и быстрой разработки учетных систем. И попытаемся написать код для этих сущностей на английском, да так, чтобы это было наглядно и удобно потом сопровождать. Переведи на английский "Счет-фактура", "Требование-накладная", "Расходы будущих периодов". Таких понятий в "их" учете просто нет. Даже если все время помнить, что НДС по-английски VAT, не факт, что в контексте это будет всегда понятно. Транслитом? Один напишет Ostatki, другой Remains, разбирайся потом.
Можно писать гибридно:
Documents.СчетФактураВыданный.CreateNew( );
Не уверен, что это менее криво, чем то, над чем тут смеются. Да и раскладку переключать невесело.
Хреново, говорите, смотрится с общепрограммерской точки зрения все это? Так вам что писать - учетную задачу или системную утилиту? 1С - инструмент под вполне жизненные задачи. Расчет вашей же ЗП, со всеми налогами и премиями, как бы криво они не назывались и не считались, спасибо правительству.
kyzi007 27.03.2012 10:12 # 0
roman-kashitsyn 31.01.2012 16:33 # +4
kyzi007 31.01.2012 16:35 # 0
Ну блин не подходит русский язык для кодинга из-за своей сложности! Пиздец как звучит же.
bugmenot 31.01.2012 18:52 # +3
eth0 31.01.2012 21:28 # +3
Резьбовое.
Быдло-SQL - отличное развлечение. Когда я начинаю думать, что в восьмёрке появилась вменяемая архитектура и 1с не так плох, я смотрю на его язык запросов и меня пробивает на ха-ха.
Cthulhu 03.02.2012 13:25 # 0
это - не быдло-sql, это корректная глубокая локализация. что не отменяет пробивания на ха-ха.
приблизительно так же (с точностью до обозначения!), как китайский - не быдло-язык. что не отменяет от пробивания на ха-ха от многих его фраз, так созвучных привычной уху обсценной лексике родного великого и могучего.
eth0 03.02.2012 17:39 # 0
Вероятность того, что человек, приходя делать запросы уже знает _нормальный_ язык запросов не нулевая. А тут, фактически, нужно освоить тот же, только без крыльев и с быдлозапросами.
1с вэй.
bugmenot 03.02.2012 19:02 # +1
Lure Of Chaos 01.02.2012 01:38 # +3
GhOsTMZ 01.02.2012 13:14 # +1
Одна из причин, по которым я всеми руками и ногами упираюсь от его изучения - это реализация синтаксиса...
kyzi007 01.02.2012 13:58 # 0
bugmenot 01.02.2012 14:36 # 0
Lure Of Chaos 02.02.2012 00:08 # 0
bugmenot 02.02.2012 09:31 # +3
Maikl_kar 02.02.2012 15:50 # +1
А какая разница какой язык? Качество кода то зависит не от этого.
eth0 02.02.2012 18:05 # 0
Корпоративная солидарность.
Вот есть у меня старая конфа. Буду я там писать If вместо Если. Будет смешенье французского с нижегородским. Нафиг такое надо?
Govnocoder#0xFF 02.02.2012 19:05 # 0
GhOsTMZ 03.02.2012 10:26 # +1
Maikl_kar 03.02.2012 12:32 # −3
Хотя кроме привычки, никаких других достоинств в англоязычной транскрипции языка запросов (да и просто команд ЯП) я не вижу. А привычка она зависит от того на чем ты пишешь чаще.
Надеюсь никто не будет спорить с тем что английский язык - это в первую очередь человеческий язык, а не "язык программистов". И для алгоритмического применения он ничуть не лучше русского, немецкого или финского.
Просто они (англоговорящие) первые смогли массово внедрить компьютеры.
Слава богу что это были не китайцы... а то сейчас была бы масса комментариев типа - "Ну надо же какие 1С идиоты-патриоты - все ведь привыкли писать запросы иероглифами!" )))))
kyzi007 03.02.2012 12:39 # 0
bugmenot 03.02.2012 13:04 # +2
GhOsTMZ 03.02.2012 14:17 # +3
Maikl_kar 06.02.2012 07:53 # −2
лет сто назад, международным считался французский... а английский был распространен и популярен, как сейчас болгарский.
eth0 06.02.2012 13:19 # 0
Сто миллионов американцев, хрен знает сколько англичан и это без индусов.
3.14159265 06.02.2012 14:32 # +3
http://ru.wikipedia.org/wiki/Британская_империя
Британская империя — крупнейшее из когда-либо существовавших государств за всю историю человечества с колониями на всех континентах. Наибольшей площади империя достигла в середине 30-х годов XX в., тогда земли Соединённого Королевства простирались более чем на 37 млн км², что составляет около четверти земной суши. Общая численность населения империи составляла примерно 500 млн человек (примерно одна четвёртая часть человечества).
>а английский был распространен и популярен, как сейчас болгарский.
ОГЛЫ?
GhOsTMZ 07.02.2012 12:06 # +1
Cthulhu 03.02.2012 13:30 # −1
отказываться от инструмента в силу сформированной ранее привычки (особенно памятуя о том, что использование этого инструмента неизбежно выработает новую привычку)... ну, это, приблизительно как отказываться от бензопилы и пользоваться молотком просто потому что молотком привычнее.
(за скобками - возможность таки юзать в той же одинэсине англо-транскрипцию во весь рост)
Govnocoder#0xFF 02.02.2012 19:05 # 0
Govnocoder#0xFF 02.02.2012 19:11 # +3
НЕ ПЫТАЙТЕСБ ЧТОТ0 N3МЕНИТЬ!
Cthulhu 03.02.2012 13:20 # −3
2. В 1с русский для русскоязычных более удобен в связи с двумя обстоятельставами: во-первых, есь код бъётся без переключения регистров (писать русскоязычному комментарии и сообщения для русскоязычных в междумордие на латинице - нухуйзнает); во-вторых именования и ключевые слова на русском понимаются и конструируются (русскоязычным прогом на русском языке) просто понятнее и проще.
ЕСЛИ есть возможность упростить процесс разработки (повысив тем самым эффективность труда) - при наличии(!) таковой возможности - то, как раз, глупее отказываться от такой возможности чем наоборот.
Прим.: и, вот, интересно, на Brainfuck апологеты англика в синтаксисе не называют весь(!) код говнокодом?..
Говногость 03.02.2012 16:18 # 0
nolka4 04.02.2012 10:30 # 0
Чтобы написать NULL - нужно переключаться в англоязычную раскладку
Чтобы поставить символ | - нужно переключаться в англоязычную раскладку
Cthulhu 04.02.2012 15:19 # −4
нет
нет
(шаблоны рулят)
bugmenot 04.02.2012 15:39 # +2
eth0 04.02.2012 17:20 # +2
Cthulhu 04.02.2012 21:31 # 0
Cthulhu 04.02.2012 21:30 # −3
имена объектов данных и переменных, а также комментарии комментарии ВСЕ в шаблоны забить - невозможно; при кириллической нотации встроенного языка в шаблоны забивается не так уж много замен (по кириллическим сигнатурам) для ввода некоторых(!!) ключевых лексем встроенного языка с не кириллическими символами.
bugmenot 04.02.2012 23:55 # 0
кто-нибудь ведет счет защитникам 1С?
Cthulhu 05.02.2012 01:42 # 0
Ок.
guest 03.02.2012 16:16 # 0
и скорее всего этот код выполняется построчно)) радует строка; Запрос.УстановитьПараметр("Номенклатура" ,ТекущийЭлемент.ТекущаяСтрока.Номенклату ра);
Maikl_kar 06.02.2012 07:57 # +2
Этот код я запостил как говнокод не из за того что он на 1С, а из за того как был построен запрос.
bugmenot 06.02.2012 15:51 # +2
Вот что крест животворящий делает!