|   |   | 
| 
 | Как по дате определить что это конец месяца? | ☑ | ||
|---|---|---|---|---|
| 0
    
        idw 18.05.12✎ 10:07 | 
        Собственно такой вопрос. На в скидку, что приходит в голову сравнивать дату с 12-тью концами месяцев. Может существует более элегантное решение?     | |||
| 13
    
        Reset 18.05.12✎ 10:19 | 
        (10) Неформализовано понятие в сабже "конец месяца".
  Если "конец месяца" - это "последний день месяца", то правильный (первый правильный) в (3). Если конец месяца - это последняя секунда (т.е., в интерпретации системной функции КонецМесяца), то (4) - тоже правильный. :-P (12) +1 | |||
| 14
    
        mg-samara 18.05.12✎ 10:19 | 
        (10) Так это пятничная ветка такая.     | |||
| 15
    
        zak555 18.05.12✎ 10:20 | 
        (12) тогда лучше так :
  Функция ЭтоКонецМесяца (Дата) Возврат КонецДня(дата) = КонецМесяца(Дата); КонецФункции | |||
| 16
    
        mg-samara 18.05.12✎ 10:23 | 
        Давайте конкурс откроем - кто интереснее и увлекательнее выполнить поставленную задачу. Использовать функции КонецМесяца и Месяц- нельзя!     | |||
| 17
    
        aleks-id 18.05.12✎ 10:23 | 
        (15) это не уменьшает твой косяк в (6) ;)     | |||
| 18
    
        Адинэснег 18.05.12✎ 10:25 | ||||
| 19
    
        Reset 18.05.12✎ 10:25 | 
        (16) Паразитируя на (1):
  ЭтоКонецМесяца=День(КонецДня(Дата)+1)=1 Или более загадочно ЭтоКонецМесяца=Не(День(КонецДня(Дата)-1) :) | |||
| 20
    
        alextom81 18.05.12✎ 10:25 | 
        ЭтоКонецМесяца=?(КонецДня(ТекущаяДата())+1 = НачалоМесяца(КонецДня(ТекущаяДата()+1)), Истина, Ложь);     | |||
| 21
    
        PR 18.05.12✎ 10:27 | 
        (12) За (7) убивать надо.     | |||
| 22
    
        hhhh 18.05.12✎ 10:27 | 
        (16) самое элегантное у ТС в (0) 12 сравнений с 12-ю концами месяцев.     | |||
| 23
    
        zak555 18.05.12✎ 10:28 | 
        (21) что там неверно ?     | |||
| 24
    
        Reset 18.05.12✎ 10:28 | 
        (19) Пропустил скобку ЭтоКонецМесяца=Не(День(КонецДня(Дата))-1)     | |||
| 25
    
        zak555 18.05.12✎ 10:28 | 
        (17) там я конец года только не учёл=)     | |||
| 26
    
        Maxus43 18.05.12✎ 10:29 | 
        (21) я жить хочу.
  мКонецМесяца = КонецДня(дата) = КонецМесяца(Дата) | |||
| 27
    
        Reset 18.05.12✎ 10:29 | 
        PR злой сегодня :)     | |||
| 28
    
        Fish гуру 18.05.12✎ 10:30 | 
        (16) Имхо, победит метод ТС:
  Если дата = ПервыйКонец тогда ... ИначеЕсли дата = ВторойКонец тогда ... и т.д., и т.п. :)))) | |||
| 29
    
        hhhh 18.05.12✎ 10:31 | 
        (16) вот без месяцев
  Если День(КонецДня(Дата)) > День(КонецДня(Дата) + 1) | |||
| 30
    
        mg-samara 18.05.12✎ 10:34 | 
        (28) Нужно стремиться к совершенству! Должен быть вариант еще лучше!     | |||
| 31
    
        Irek-kazan 18.05.12✎ 10:36 | 
        (28) так сложно т.к. високосные и т.п., лучше 
  Если дата+1= ПерваяДатаПервогоМесяца тогда ... ИначеЕсли дата+1 = ПерваяДатаВторогоМесяца тогда ... | |||
| 32
    
        PR 18.05.12✎ 10:38 | 
        (23) Для того, чтобы понять это выражение, нужно напрячь мозг.
  Причем совершенно без нужды. Читабельность и простота кода очень важны. | |||
| 33
    
        Reset 18.05.12✎ 10:38 | 
        (31) Так читабельней:
  Если дата = ПерваяДатаПервогоМесяца-1 тогда ... ИначеЕсли дата = ПерваяДатаВторогоМесяца-1 тогда ... | |||
| 34
    
        PR 18.05.12✎ 10:39 | 
        (27) Да ладно, я всегда такой :))
  Суровый, но справедливый :)) | |||
| 35
    
        Maxus43 18.05.12✎ 10:39 | 
        (32) фу ты, я уж думал что ругаешся на использование переменной с именем предопределённой функции. не надо там ничо напрягать     | |||
| 36
    
        Ненавижу 1С гуру 18.05.12✎ 10:41 | 
        //на конкурс:
  НашГод = Год(НашаДата); ЭтоВисокосныйГод = (НашГод%4=0) и (НашГод%100<>0 или НашГод%400=0); Массив = Новый Массив(); Массив.Добавить(31); Массив.Добавить(28 + Число(ЭтоВисокосныйГод); Массив.Добавить(31); Массив.Добавить(30); Массив.Добавить(31); Массив.Добавить(30); Массив.Добавить(31); Массив.Добавить(31); Массив.Добавить(30); Массив.Добавить(31); Массив.Добавить(30); Массив.Добавить(31); С=0; Для й=1 по 12 Цикл Массив[й]=Массив[й]+С; С = Массив[й]; КонецЦикла; ЭтоКонецМесяца = Массив.Найти(ДеньГода(НашаДата))<>Неопределено; | |||
| 37
    
        PR 18.05.12✎ 10:42 | 
        (35) На это мне плевать.
  Если из-за этого не будет работать код, то тебя суровая реальность ударит больно об стол лицом. А вот за нечитабельный код никто не ударит, а жаль :)) | |||
| 38
    
        НЕА123 18.05.12✎ 10:42 | 
        без Концов
  мКонецМесяца = Месяц(Дата) <> Месяц(Дата+86400); | |||
| 39
    
        Reset 18.05.12✎ 10:42 | 
        (32) ИМХО, тот случай здесь, когда такая конструкция допустима. Разве переменную-результат назвать получше.     | |||
| 40
    
        aleks-id 18.05.12✎ 10:44 | 
        Если Найти(Строка(ВведеннаяДата),"31.01")>0 Тогда
  ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"28.02")>0 ИЛИ (Найти(Строка(ВведеннаяДата),"29.02")>0 И ГодВисокосный()) Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"31.03")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"30.04")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"31.05")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"30.06")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"31.07")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"31.08")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"30.09")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"31.10")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"30.11")>0 Тогда ЭтоКонецМесяца=Истина; ИначеЕсли Найти(Строка(ВведеннаяДата),"31.12")>0 Тогда ЭтоКонецМесяца=Истина; Иначе ЭтоКонецМесяца=Ложь; КонецЕсли; | |||
| 41
    
        mg-samara 18.05.12✎ 10:45 | 
        (36) Какая интересная идея!     | |||
| 42
    
        PR 18.05.12✎ 10:45 | 
        (39) Не знаю ни одного случая когда стоит использовать выражение "а = б = в".
  Всегда нужно писать "Если Тогда" или если нужно в одну строку, то "?()". | |||
| 43
    
        Ненавижу 1С гуру 18.05.12✎ 10:46 | 
        красивше (7) оформить так:
  НашКонецМесяца = (КонецДня(Дата)=КонецМесяца(Дата)); | |||
| 44
    
        mikecool 18.05.12✎ 10:47 | 
        (42) гоните, вы, батенька     | |||
| 45
    
        vinogradъ 18.05.12✎ 10:47 | 
        (0) На в скидку
  Дальше не читал | |||
| 46
    
        НЕА123 18.05.12✎ 10:48 | 
        (43)
  учитывая требование (42) НашКонецМесяца = НЕ (КонецДня(Дата)<>КонецМесяца(Дата)); | |||
| 47
    
        aleks-id 18.05.12✎ 10:48 | 
        >>Не знаю ни одного случая когда стоит использовать выражение "а = б = в".
  ТекСтрока.Отметка = ТекСтрока.БанковскийСчет = Константы.ОсновнойБанковскийСчет; | |||
| 48
    
        PR 18.05.12✎ 10:48 | 
        (44) Гонят стадо на водопой, а я промышленные стандарты говорю.     | |||
| 49
    
        Ненавижу 1С гуру 18.05.12✎ 10:48 | 
        (42) то есть ты считаешь, что вместо:
  А = (Б=В); лучше писать так? А = ?(Б=В,Истина,Ложь); | |||
| 50
    
        Maxus43 18.05.12✎ 10:49 | 
        (42) в типовых же используется:
  ЭтоВозврат = (СтруктураПараметров.РасчетыВозврат = Перечисления.РасчетыВозврат.Возврат); | |||
| 51
    
        Ненавижу 1С гуру 18.05.12✎ 10:49 | 
        (48) "промышленные"? ну-ка, ну-ка - разверни тему     | |||
| 52
    
        Maxus43 18.05.12✎ 10:49 | 
        скобки да, надо чтоб по феншую     | |||
| 53
    
        PR 18.05.12✎ 10:49 | 
        (46) Вас рядом с (7) рядом поставят, у одной стенки :))     | |||
| 54
    
        mikecool 18.05.12✎ 10:50 | 
        (48) у каждой промышленности - свои стандарты
  у кого то - табуляция = два пробела (49) +1 | |||
| 55
    
        aleks-id 18.05.12✎ 10:50 | 
        по конструкции А=Б=В легко отличить профессионального программиста от недокодера и копрокодера.     | |||
| 56
    
        PR 18.05.12✎ 10:50 | 
        (47) И чё?     | |||
| 57
    
        Maxus43 18.05.12✎ 10:50 | 
        (53) разрабов типовых тоже поставиш?     | |||
| 58
    
        aleks-id 18.05.12✎ 10:51 | 
        (56) если твое образование не позволяет познать глубину кода, тогда "и всё".     | |||
| 59
    
        mikecool 18.05.12✎ 10:52 | 
        (56) Роман, то что твои стандарты отличаются от возможностей языка - ничего не значит.     | |||
| 60
    
        aleks-id 18.05.12✎ 10:53 | 
        (56) напиши ка, как по твоему должен выглядеть код?
  Если ТекСтрока.БанковскийСчет = Константы.ОсновнойБанковскийСчет Тогда ТекСтрока.Отметка = Истина Иначе ТекСтрока.Отметка = Ложь КонецЕсли; так??? вот за это к стенке надо ставить. | |||
| 61
    
        PR 18.05.12✎ 10:53 | 
        (49) Нет
  Если Б = В Тогда А = Истина; Иначе А = Ложь; КонецЕсли; А ?() нужно использовать крайне редко, когда иначе не получится. Например текст запроса на 5 экранов и нужно в зависимости от какого-то условия вставить один или другой текст. | |||
| 62
    
        PR 18.05.12✎ 10:54 | 
        (50) Типовые тоже разные люди пишут, попадаются и среди них колхозники.     | |||
| 63
    
        aleks-id 18.05.12✎ 10:54 | 
        рукалицо.жпг
  (*ушел из этой ветки*) | |||
| 64
    
        PR 18.05.12✎ 10:55 | 
        (51) Что тебе развернуть?     | |||
| 65
    
        Reset 18.05.12✎ 10:55 | 
        "а=(б=ц)" лучше чем "Если б=ц" тем, что инициализируется переменная, которую потом можно использовать.
  Если результат выражения нужен один раз в условии, то, конечно, лучше вариант с Если. | |||
| 66
    
        Ненавижу 1С гуру 18.05.12✎ 10:56 | 
        (61) мда... это что-то в духе такого:
  Если Флажок=Истина Тогда ЭлементыФормы.ПолеВвода.Доступность = Ложь; Иначе ЭлементыФормы.ПолеВвода.Доступность = Истина; КонецЕсли; ты именно так предлагаешь писать? | |||
| 67
    
        Reset 18.05.12✎ 10:57 | 
        (61) Вот это как раз трудночитаемый код с бессмысленными операторами вместо одного ;(     | |||
| 68
    
        dmpl 18.05.12✎ 11:00 | 
        Вот если бы в 1С было нормальное различие знаков для операций сравнения и присваивания - то еще можно было бы о чем-то говорить. А так - a = b = c чисто логически - это сделать все 3 переменных равными друг другу. А то, что 1С с какого-то бодуна в одном случае сравнивает, а в другом присваивает не способствует логичности и не по фен-шую.     | |||
| 69
    
        Ненавижу 1С гуру 18.05.12✎ 11:02 | 
        (68) если внимательно прочитать синтаксис языка, то таких вопросов не возникает
  и не надо тут делать аллюзию на Си хотя конечно удобнее было бы, но бейсик же живет с этим | |||
| 70
    
        PR 18.05.12✎ 11:02 | 
        (60) Именно так.     | |||
| 71
    
        PR 18.05.12✎ 11:04 | 
        (66) Не путай теплое с мягким.
  В этом случае правильнее ЭлементыФормы.ПолеВвода.Доступность = НЕ Флажок; Хотя если Флажок может быть не булевым, а например Неопределено, то да, верно именно с Если. | |||
| 72
    
        Ненавижу 1С гуру 18.05.12✎ 11:06 | 
        (71) ун тогда не понимаю чего ты упираешься с А=Б=В;
  проверка на равенство такой же логический оператор как и НЕ | |||
| 73
    
        pumbaEO 18.05.12✎ 11:06 | 
        Давайте еще вспомним про безграмотность и орфографические ошибки в типовых.     | |||
| 74
    
        PR 18.05.12✎ 11:06 | 
        (67) На языке 1С не стоит программировать как на C++.
  Тут в миллион раз важнее читабельность, простота и надежность кода, нежели компактность и экономия ресурсов компьютера. | |||
| 75
    
        Maxus43 18.05.12✎ 11:08 | 
        (74) легче прочитать А=Б=В чем (61) для номральных людей, имхо     | |||
| 76
    
        PR 18.05.12✎ 11:08 | 
        (72) А я и не говорю, что это не сработает или это что-то совершенно другое.
  Я говорю про то, что это менее читабельно и сложнее, чем вариант с Если. | |||
| 77
    
        PR 18.05.12✎ 11:09 | 
        (73) Ну не все в школе хорошо учились, да.     | |||
| 78
    
        dmpl 18.05.12✎ 11:10 | 
        (69) Вот из-за разницы в поведении в конкретном языке такая конструкция не по фен-шую.
  (75) Это только пока ты программистом не станешь. | |||
| 79
    
        Maxus43 18.05.12✎ 11:10 | 
        (78) бгг     | |||
| 80
    
        Maxus43 18.05.12✎ 11:11 | 
        полфорума не программисты, только люди пишущие всегда Если Тогда достойны     | |||
| 81
    
        PR 18.05.12✎ 11:13 | 
        (75) Для номральных может быть.
  А для нормальных думаю, что проще Если. Особенно если речь не про "А=Б=В", а про чуть более длинные выражение, например "ТекущиеДанные.Флажок=ОбщийМодуль.ПолучитьЧтоТоТам(ТекущиеДанные.Сумма, Истина)=ОпределитьКакойНитьТамПоказатель(Константы.МояКонстанта.Получить(), ТекущиеДанные.ДокументПланирования.Дата, ТекущаяДата())". | |||
| 82
    
        Maxus43 18.05.12✎ 11:14 | 
        (81) есно для коротуих выражений применять, читабельность не страдает     | |||
| 83
    
        dmpl 18.05.12✎ 11:14 | 
        (80) Ты точно не программист, иначе бы понял о чем речь. Ты просто кодер.     | |||
| 84
    
        badboychik 18.05.12✎ 11:14 | 
        (81) в приципе можно согласиться... одна функция на одной строке должна быть     | |||
| 85
    
        Reset 18.05.12✎ 11:15 | 
        (83) Фигню же несешь     | |||
| 86
    
        PR 18.05.12✎ 11:15 | 
        (82) А когда выражение бывает наращивается, то переписывать код?     | |||
| 87
    
        Maxus43 18.05.12✎ 11:16 | 
        (83) конечно, тока ты программист     | |||
| 88
    
        badboychik 18.05.12✎ 11:16 | 
        был бы еще нормальный оператор Switch...Case, было бы еще чуточку удобнее писать     | |||
| 89
    
        Reset 18.05.12✎ 11:16 | 
        (86) Разумеется. В каждый момент времени должен быть выбран оптимальный варинт.     | |||
| 90
    
        PR 18.05.12✎ 11:16 | 
        (84) одна функция на одной строке несет в себе в том числе чисто практическую ценность, так проще отлаживать.     | |||
| 91
    
        PR 18.05.12✎ 11:17 | 
        (85) Он тебе все правильно говорит.     | |||
| 92
    
        PR 18.05.12✎ 11:18 | 
        (89) Это называется самому себе создать сложности на ровном месте, а потом героически с ними бороться :))     | |||
| 93
    
        Reset 18.05.12✎ 11:20 | 
        По моему тема ушла в срач. Ухожу из ветки (с)
  :) | |||
| 94
    
        dmpl 18.05.12✎ 11:21 | 
        (85)(87) Вы в курсе, что программист, хотя, как правило, и знает несколько языков программирования, но также он вообще может не знать ни одного языка программирования? ;) Язык программирования для него лишь инструмент реализации алгоритма. А потому он очень неохотно использует конструкции, имеющие в разных языках программирования разный смысл.     | |||
| 95
    
        Ненавижу 1С гуру 18.05.12✎ 11:22 | 
        (94) некоторые даже с ума сходят от NULL     | |||
| 96
    
        aleks-id 18.05.12✎ 11:24 | ||||
| 97
    
        pumbaEO 18.05.12✎ 11:25 | 
        - Почему, ты ненавидишь 1С?
  - Она меня до психушки довела! :) | |||
| 98
    
        Maxus43 18.05.12✎ 11:31 | 
        (94) я в курсе, видел таких "программистов", в 1с даже на англицком пишут, вот тебе читаемость кода супер. Я использую в конкретном языке свои нюансы. Использую больше возможностей     | |||
| 99
    
        mg-samara 18.05.12✎ 12:12 | 
        А победитель в конкурсе - вариант(36)
  Согласны? | |||
| 100
    
        Ненавижу 1С гуру 18.05.12✎ 12:13 | 
        100     | |||
| 101
    
        Maxus43 18.05.12✎ 12:18 | 
        (99) варианта с Запросом не было ещё)     | |||
| 102
    
        mg-samara 18.05.12✎ 12:20 | 
        (101) Да, ты прав!
  Ждем вариантов с запросом! | |||
| 103
    
        Maxus43 18.05.12✎ 12:24 | 
        ВЫБРАТЬ
  ВЫБОР КОГДА КОНЕЦПЕРИОДА(&Дата, ДЕНЬ) = КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК результат | |||
| 104
    
        mg-samara 18.05.12✎ 12:26 | 
        (103) Ну это как-то уже банально...
  Хочется чего-то извращенного! :-) | |||
| 105
    
        Maxus43 18.05.12✎ 12:43 | 
        ВЫБРАТЬ
  &ДатаНач КАК УстановленныйДень, МАКСИМУМ(ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1)) КАК ПоследнийДень, МЕСЯЦ(ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1)) КАК Месяц ИЗ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры2 ПО (Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА(&ДатаНач, МЕСЯЦ), ДЕНЬ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры3 ПО (Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА(&ДатаНач, МЕСЯЦ), ДЕНЬ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры4 ПО (Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&ДатаНач, КОНЕЦПЕРИОДА(&ДатаНач, МЕСЯЦ), ДЕНЬ)) СГРУППИРОВАТЬ ПО МЕСЯЦ(ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1)) УПОРЯДОЧИТЬ ПО ПоследнийДень | |||
| 106
    
        dmpl 18.05.12✎ 12:47 | 
        (99) Там скобочки не хватает как минимум.     | |||
| 107
    
        Maxus43 18.05.12✎ 12:52 | 
        (105) поле месяц можно убрать конечно и т.д.     | |||
| 108
    
        Reset 18.05.12✎ 13:28 | 
        (102) Если конкурс еще закончен, примите перл:
  Попытка ВременнаяПеременная=Дата(Год(ИсхДата),Месяц(ИсхДата),День(ИсхДата)+1); ЭтоКонецМесяца=Ложь; Исключение ЭтоКонецМесяца=Истина; КонецПопытки | |||
| 109
    
        Reset 18.05.12✎ 13:29 | 
        еще *НЕ закончен ;)     | |||
| 110
    
        Jaffar 18.05.12✎ 13:47 | 
        (11) "не забудь учесть високосные годы для февраля"
  мне вчера прислали письмо, в котором сообщили об акции, действующей до 29/02/2013... | |||
| 111
    
        Sh18 18.05.12✎ 13:53 | 
        (108) - Reset, это шедевр! :)     | |||
| 112
    
        mg-samara 23.05.12✎ 14:14 | 
        (108) - Здорово!     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |