|
OFF: крутые кодеры, давайте обсудим примеры крутого кода | ☑ | ||
---|---|---|---|---|
0
prog01
23.10.12
✎
18:31
|
с примерами, нужно выяснить кто
"Самый Крутой Одинесник НЕ быдлокодер" |
|||
1
aleks-id
23.10.12
✎
18:32
|
22см. ветку можно закрывать.
|
|||
2
Wobland
23.10.12
✎
18:33
|
(0) истина
|
|||
3
ПиН
23.10.12
✎
18:33
|
Пока 1=1 Цикл?
|
|||
4
prog01
23.10.12
✎
18:33
|
(1)"22см. ветку можно закрывать" это псевдокод?
|
|||
5
SherifSP
23.10.12
✎
18:33
|
(2) Ложь
|
|||
6
zak555
23.10.12
✎
18:33
|
рекурсию пиши
|
|||
7
Wobland
23.10.12
✎
18:34
|
(5) да ваще переменная Самый не определена
|
|||
8
prog01
23.10.12
✎
18:34
|
прошу не отправлять ветку в юмор
все у кого 22 см. и более могут привести примеры своего крутого кода |
|||
9
Wobland
23.10.12
✎
18:34
|
(8) фото крутого кода выкладывать?
|
|||
10
SherifSP
23.10.12
✎
18:35
|
При открытии документа
Сообщить(ТекущаяДата()); |
|||
11
Wobland
23.10.12
✎
18:35
|
+(9) на фоне линейки, конечно
|
|||
12
Неженцев Эдуард
23.10.12
✎
18:35
|
(0) Ты кто?
|
|||
13
zak555
23.10.12
✎
18:36
|
надо другую номинацию : самый пологий код
|
|||
14
prog01
23.10.12
✎
18:36
|
(12)крутой кодер )))
пишите пожалуйста в чем крутость примеров |
|||
15
vmv
23.10.12
✎
18:38
|
(0) я победил, включай голосовалку и можете начать перечислять мне деньги, кто будет жадничать - тот б-кодер и г-кодер)
|
|||
16
Wobland
23.10.12
✎
18:38
|
(14) меня девушки любят. вот недавно..
Попытка ЯСказалУчитыватьНДС=Док.УчитыватьНДС; Исключение ЯСказалУчитыватьНДС=0; КонецПопытки; Попытка ЯСказалУчитыватьНП=Док.УчитыватьНП; Исключение ЯСказалУчитыватьНП=0; КонецПопытки; |
|||
17
aleks-id
23.10.12
✎
18:38
|
#define false true
|
|||
18
DJ Anthon
23.10.12
✎
18:39
|
Для Сч = -ТЗ.КоличествоСтрок() По -1 Цикл
ТЗ.ПолучитьСтрокуПоНомеру(-Сч); Если УсловиеВыполняется(ТЗ) = 1 Тогда ТЗ.УдалитьСтроку(-Сч); КонецЕсли; КонецЦикла; |
|||
19
MadHead
23.10.12
✎
18:40
|
Как-то так
Процедура ТабЗЧПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ДанныеСтроки.ЗЧ.ВидЗч = Перечисления.ВидЗЧ.Услуга Тогда ДанныеСтроки.Код = ххх; КонецЕсли КонецПроцедуры |
|||
20
aleks-id
23.10.12
✎
18:40
|
(16) НП лет так цать как отменили
|
|||
21
vmv
23.10.12
✎
18:41
|
(18) ты реализовал цикл дувайл чего не могли сделать 20 лет на Селезнева, ладно можешь быть № 2, уважаю
|
|||
22
Wobland
23.10.12
✎
18:41
|
(20) а обработки всё живут..
|
|||
23
Неженцев Эдуард
23.10.12
✎
18:42
|
Где мой приз?
ТЗТовары = ЭтотОбъект.Товары.Выгрузить(); ТЗТовары.Свернуть("Модель, Номенклатура, Цвет", "Количество, Размер42, Размер44, Размер46, Размер48, Размер50, Размер52, Размер54, Размер56, Размер58, Размер60"); ЗапросРезерв = Новый Запрос; ЗапросРезерв.УстановитьПараметр("Период", КонецДня(ЭтотОбъект.Дата)); ЗапросРезерв.УстановитьПараметр("Склад", ЭтотОбъект.Склад); ЗапросРезерв.УстановитьПараметр("Регистратор", ЭтотОбъект.ЗаказПокупателя.Ссылка); ЗапросРезерв.Текст = "ВЫБРАТЬ | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,0)) КАК Количество, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер42Остаток,0)) КАК Размер42, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер44Остаток,0)) КАК Размер44, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер46Остаток,0)) КАК Размер46, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер48Остаток,0)) КАК Размер48, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер50Остаток,0)) КАК Размер50, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер52Остаток,0)) КАК Размер52, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер54Остаток,0)) КАК Размер54, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер56Остаток,0)) КАК Размер56, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер58Остаток,0)) КАК Размер58, | СУММА(isnull(ТоварыВРезервеНаСкладахОстатки.Размер60Остаток,0)) КАК Размер60, | ТоварыВРезервеНаСкладахОстатки.Склад, | ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура, | ТоварыВРезервеНаСкладахОстатки.Цвет КАК Цвет, | ТоварыВРезервеНаСкладахОстатки.ДокументРезерва |ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки( | &Период, | Склад = &Склад | И ДокументРезерва = &Регистратор | И Номенклатура = &Номенклатура | И Цвет = &Цвет) КАК ТоварыВРезервеНаСкладахОстатки | |СГРУППИРОВАТЬ ПО | ТоварыВРезервеНаСкладахОстатки.Склад, | ТоварыВРезервеНаСкладахОстатки.ДокументРезерва, | ТоварыВРезервеНаСкладахОстатки.Номенклатура, | ТоварыВРезервеНаСкладахОстатки.Цвет | |УПОРЯДОЧИТЬ ПО | Номенклатура, | Цвет"; Для Каждого ТекСтрокаТовары Из ТЗТовары Цикл //Товары в резерве на складах Если ЗначениеЗаполнено(ЭтотОбъект.ЗаказПокупателя) Тогда ЗапросРезерв.УстановитьПараметр("Номенклатура", ТекСтрокаТовары.Номенклатура); ЗапросРезерв.УстановитьПараметр("Цвет", ТекСтрокаТовары.Цвет); Выборка = ЗапросРезерв.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда //Товары в резерве на складах Движения.ТоварыВРезервеНаСкладах.Записывать = Истина; Движение = Движения.ТоварыВРезервеНаСкладах.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Склад = ЭтотОбъект.Склад; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.ДокументРезерва = ЭтотОбъект.ЗаказПокупателя.Ссылка; Движение.Цвет = ТекСтрокаТовары.Цвет; //42 Если Выборка.Размер42 > 0 Тогда Если Выборка.Размер42 >= ТекСтрокаТовары.Размер42 Тогда Движение.Размер42 = ТекСтрокаТовары.Размер42; Иначе Движение.Размер42 = Выборка.Размер42; КонецЕсли; КонецЕсли; //44 Если Выборка.Размер44 > 0 Тогда Если Выборка.Размер44 >= ТекСтрокаТовары.Размер44 Тогда Движение.Размер44 = ТекСтрокаТовары.Размер44; Иначе Движение.Размер44 = Выборка.Размер44; КонецЕсли; КонецЕсли; //46 Если Выборка.Размер46 > 0 Тогда Если Выборка.Размер46 >= ТекСтрокаТовары.Размер46 Тогда Движение.Размер46 = ТекСтрокаТовары.Размер46; Иначе Движение.Размер46 = Выборка.Размер46; КонецЕсли; КонецЕсли; //48 Если Выборка.Размер48 > 0 Тогда Если Выборка.Размер48 >= ТекСтрокаТовары.Размер48 Тогда Движение.Размер48 = ТекСтрокаТовары.Размер48; Иначе Движение.Размер48 = Выборка.Размер48; КонецЕсли; КонецЕсли; //50 Если Выборка.Размер50 > 0 Тогда Если Выборка.Размер50 >= ТекСтрокаТовары.Размер50 Тогда Движение.Размер50 = ТекСтрокаТовары.Размер50; Иначе Движение.Размер50 = Выборка.Размер50; КонецЕсли; КонецЕсли; //52 Если Выборка.Размер52 > 0 Тогда Если Выборка.Размер52 >= ТекСтрокаТовары.Размер52 Тогда Движение.Размер52 = ТекСтрокаТовары.Размер52; Иначе Движение.Размер52 = Выборка.Размер52; КонецЕсли; КонецЕсли; //54 Если Выборка.Размер54 > 0 Тогда Если Выборка.Размер54 >= ТекСтрокаТовары.Размер54 Тогда Движение.Размер54 = ТекСтрокаТовары.Размер54; Иначе Движение.Размер54 = Выборка.Размер54; КонецЕсли; КонецЕсли; //56 Если Выборка.Размер56 > 0 Тогда Если Выборка.Размер56 >= ТекСтрокаТовары.Размер56 Тогда Движение.Размер56 = ТекСтрокаТовары.Размер56; Иначе Движение.Размер56 = Выборка.Размер56; КонецЕсли; КонецЕсли; //58 Если Выборка.Размер58 > 0 Тогда Если Выборка.Размер58 >= ТекСтрокаТовары.Размер58 Тогда Движение.Размер58 = ТекСтрокаТовары.Размер58; Иначе Движение.Размер58 = Выборка.Размер58; КонецЕсли; КонецЕсли; //60 Если Выборка.Размер60 > 0 Тогда Если Выборка.Размер60 >= ТекСтрокаТовары.Размер60 Тогда Движение.Размер60 = ТекСтрокаТовары.Размер60; Иначе Движение.Размер60 = Выборка.Размер60; КонецЕсли; КонецЕсли; //Количество Движение.Количество = Движение.Размер42 + Движение.Размер44 + Движение.Размер46 + Движение.Размер48 + Движение.Размер50 + Движение.Размер52 + Движение.Размер54 + Движение.Размер56 + Движение.Размер58 + Движение.Размер60; КонецЕсли; КонецЕсли; КонецЦикла; //Цикл по свернутой таблице товаров |
|||
24
Wobland
23.10.12
✎
18:42
|
кстати, я как-то из спортивного интереса заделал рабочий пустой цикл
|
|||
25
MadHead
23.10.12
✎
18:42
|
(19) такой код когда-то вешал терминал еще и некоторые клиентские машины
|
|||
26
Wobland
23.10.12
✎
18:42
|
(23) Размер42Остаток - 10 баллов!
|
|||
27
aleks-id
23.10.12
✎
18:44
|
(25) обломаешься на тонком
|
|||
28
zak555
23.10.12
✎
18:44
|
(23) размер обуви ?
|
|||
29
Steel_Wheel
23.10.12
✎
18:45
|
(17) и коммент снизу
"Убейте себя об стену, сволочи!!!1" |
|||
30
Неженцев Эдуард
23.10.12
✎
18:45
|
(28) Женская одежда
|
|||
31
zak555
23.10.12
✎
18:46
|
(30) г@внокод это
|
|||
32
MadHead
23.10.12
✎
18:46
|
(27) а смысл подобный код писать на тонком?
|
|||
33
aleks-id
23.10.12
✎
18:46
|
(29) не. комент был "счастливой отладки уки"
|
|||
34
aleks-id
23.10.12
✎
18:47
|
(32) хз. некоторые при переходе пытаются. поищи на форуме по обработчику
|
|||
35
zladenuw
23.10.12
✎
18:48
|
(23) а я бы размер обуви в массив и делал так.
Для каждого Размер Из МассивРазмером Цикл Если Выборка[Размер] > 0 Тогда Если Выборка[Размер] >= ТекСтрокаТовары[Размер] Тогда Движение[Размер] = ТекСтрокаТовары[Размер]; Иначе Движение[Размер] = Выборка[Размер]; КонецЕсли; КонецЕсли; КонецЦикла |
|||
36
Неженцев Эдуард
23.10.12
✎
18:50
|
(35) Там запросом все надо было делать с самого начала.
|
|||
37
zladenuw
23.10.12
✎
18:51
|
(36) да и помещать все в тз и загружать в тз движения.
|
|||
38
zak555
23.10.12
✎
18:51
|
(36) характеристику размер надо было
|
|||
39
Неженцев Эдуард
23.10.12
✎
18:52
|
(38) Нет! У одной номенклатуры может быть десять размеров одежды и 20 цветов - это сколько же надо характеристик?
|
|||
40
zak555
23.10.12
✎
18:53
|
(39) две характеристики - размер и цвет
|
|||
41
zladenuw
23.10.12
✎
18:55
|
(0) а ты че свой шедевр не показуешь ?
|
|||
42
prog01
23.10.12
✎
18:56
|
в правильной базе со своим программистом вообще не должно быть характеристик, их нужно отключить и вставлять реквизиты - ссылки на справочники
|
|||
43
pavig
23.10.12
✎
18:56
|
||||
44
prog01
23.10.12
✎
18:56
|
(41)затрудняюсь выбрать какой из них показать, хочется сначала понять что народ считает крутым кодом )))
|
|||
45
Reset
23.10.12
✎
18:58
|
// Чтото к вечеру не смог ничего шедевральнее родить
а=Новый массив(100); // чем-то заполнить массив б=0; ~Начало: Попытка Сообщить(а[б]); б=б+1; goto ~Начало; Исключение goto ~Конец; КонецПопытки; ~Конец: |
|||
46
zladenuw
23.10.12
✎
18:59
|
(44) да ты покажи.
|
|||
47
Fragster
гуру
23.10.12
✎
18:59
|
юзаете ли вы ВызватьИсключение?
|
|||
48
Эмбеддер
23.10.12
✎
19:00
|
(44) еще не все миллионы в Ростове заработал?
|
|||
49
Fragster
гуру
23.10.12
✎
19:00
|
Результат.Выбрать() VS Результат.Выгрузить()
|
|||
50
Неженцев Эдуард
23.10.12
✎
19:00
|
(40) Можно пару скринов? возможно выяснится, что я самый тупой одинесник на земле. Но все равно пришлось бы делать без характеристик - из 1с пытались сделать один в один (по строгому желанию заказчика) старую систему на акцессе..
|
|||
51
DJ Anthon
23.10.12
✎
19:03
|
(47) а что такое?
|
|||
52
DJ Anthon
23.10.12
✎
19:04
|
(0) безусловный лидер - Как такое может работать? Шахматная программа из 1024 байт жаль, не 1Сник
|
|||
53
Reset
23.10.12
✎
19:10
|
По идее, должно работать:
#define Перем int #define Если if( #define Тогда ){ #define Иначе }{ #define ИначеЕсли( elseif( #define КонецЕсли } #define Сообщить printf #define Возврат exit(1) Перем x=1; Перем y=0; Если y==0 Тогда Сообщить("деление на ноль, однако"); Возврат; Иначе Сообщить("%f",(float)x/y); КонецЕсли; |
|||
54
GANR
23.10.12
✎
19:11
|
(0) В рамках 1С-то? Ну вот чего-то тут есть
Как в такой ситуации заменить рекурсию на стэк ??? |
|||
55
Fragster
гуру
23.10.12
✎
19:12
|
(51) может сильно увеличить читабельность кода путем выпадания на нужное количество уровней по стеку вызовов. Вместо юзания всяческих параметров типа Отказ
|
|||
56
Skylark
23.10.12
✎
19:16
|
Йо! Йо!
Быдлокодь, мазафака, быдлокодь! |
|||
57
0xFFFFFF
23.10.12
✎
19:28
|
(23) это в реальной конторе где то такое гумно работает???
|
|||
58
rs_trade
23.10.12
✎
19:30
|
(0) за крутой код бабло не платят. автор иди убейся.
|
|||
59
HeroShima
23.10.12
✎
19:34
|
Красоту кода можно оценивать только в контексте задачи. (58) +100500
|
|||
60
Smallrat
23.10.12
✎
19:53
|
Был такой человек, РупорАбсурда кажется - гулял тут его код по получению верхнего родителя для элемента справочника. Это было что-то.
|
|||
61
aleks-id
23.10.12
✎
19:56
|
(60) в чем была шедевральность?
|
|||
62
Smallrat
23.10.12
✎
19:57
|
(61) ща найду
|
|||
63
1Страх
23.10.12
✎
19:58
|
гения на вас нет
|
|||
64
Steel_Wheel
23.10.12
✎
19:59
|
(62) Выбрать элемент.родитель.родитель.родитель.родитель из справочник.Товары?
|
|||
65
aleks-id
23.10.12
✎
20:01
|
(64) ну это слишком откровенный шедевр
|
|||
66
Smallrat
23.10.12
✎
20:01
|
ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(Спр"+СтрЗаменить(Формат("","С"+(Спр.Уровень()-1))," ",".Родитель")+")]"));
|
|||
67
rphosts
23.10.12
✎
20:01
|
(16) не хватает условия:
ЯСказалГорбатый = 1; |
|||
68
1Страх
23.10.12
✎
20:02
|
||||
69
expertus
23.10.12
✎
20:04
|
||||
70
Steel_Wheel
23.10.12
✎
20:06
|
>>Военное булево "Так точно", "Никак нет".
Женское булево "Ни да, ни нет" ржака |
|||
71
expertus
23.10.12
✎
20:06
|
Чота ржу: http://govnokod.ru/1777
|
|||
72
zak555
23.10.12
✎
20:08
|
(71) это явно нег@внокод
|
|||
73
expertus
23.10.12
✎
20:08
|
(72) это отличный стеб
|
|||
74
zak555
23.10.12
✎
20:11
|
(73) это отличный код !
|
|||
75
ProProg
23.10.12
✎
20:11
|
v8: как поменять владельца элемента справочника
Призер №1 2012 года в номинации спр=Справочники.КонтактныеЛицаКонтрагентов.НайтиПоНаименованию(стр.КонтактноеЛицо.Наименование); Если спр.Пустая() Тогда спр=справочники.КонтактныеЛицаКонтрагентов.СоздатьЭлемент(); КонецЕсли; спр.ПолучитьОбъект().Должность=стр.Должность; спр.ПолучитьОбъект().Владелец=неопределено; спр.ПолучитьОбъект().Владелец=Ссылка; спр.ПолучитьОбъект().ОбменДанными.Загрузка = Истина; спр.ПолучитьОбъект().Записать(); |
|||
76
zak555
23.10.12
✎
20:13
|
(75) ты свой выложили с тройной вложенностью
|
|||
77
aleks-id
23.10.12
✎
20:16
|
(76) >>с тройной вложенностью
эт как? маня в лохини, лохини в жлк, жлк в акуе? |
|||
78
ProProg
23.10.12
✎
20:18
|
(76) а что с вложенностями не так? кроме того что ты не владеешь ими)
|
|||
79
aleks-id
23.10.12
✎
20:19
|
ггг... маня овладел влажностями(зачеркнуто) вложенностями
|
|||
80
zak555
23.10.12
✎
20:24
|
(78) смысла в них нету
|
|||
81
ProProg
23.10.12
✎
20:24
|
(79) алекс-ид тебе не хватает приставки в конце.
|
|||
82
ProProg
23.10.12
✎
20:25
|
(80) как это нет? когда одни данные скрещиваются с другими, а потом это еще с чем то. а потом из всего еще надо выбрать типа минимумов максимумов.
Ты чо? типовую открой глаза протри. |
|||
83
zak555
23.10.12
✎
20:26
|
(82) ты выложи своё с тройной вложенностью
|
|||
84
ProProg
23.10.12
✎
20:27
|
например запросы по дебиторке. отчет по кредитной линии.
Или запросы из 1С Розница по подсчету количества дней на остатках. |
|||
85
ProProg
23.10.12
✎
20:27
|
(83) а ты не завидуй моему) у меня правильное. ты свое напиши.
|
|||
86
zak555
23.10.12
✎
20:30
|
(85) я к тому, что сколько вложенности ненужно
|
|||
87
ProProg
23.10.12
✎
20:37
|
(86) при определенных услових нужно. Например когда нет потом выборки. а идет выгрузка в дерево. и нужно в самом верхнем получить дерево четкой структуры. а внутри использовать другие вещи которые должны повлиять на дерево.
|
|||
88
ProProg
23.10.12
✎
20:38
|
если бы выборка была - то да нефиг делать. выборкой управлять можно чо выгребать7 в какой последовательности и тп вне зависимости от запроса.
|
|||
89
zak555
23.10.12
✎
20:40
|
(87) тут мелькал где-то твой код с выборкой мега-вложенностью
|
|||
90
ProProg
23.10.12
✎
20:41
|
(89) мои разработки у более чем 1000 клиентов. Я думаю процентов 80 из них имеют каких либо программистов на постонке или удаленке.
Так что думаю половина мисты знакома со всеми моими обработками. |
|||
91
ProProg
23.10.12
✎
20:42
|
Мне многие даже открыто признавались что стырыли мои обработки у каких то левых клиентов. типа на всякий пошарится и тп. чонить полезное увидеть.
|
|||
92
zak555
23.10.12
✎
20:42
|
(90) о_О
|
|||
93
Скользящий
23.10.12
✎
20:46
|
(90) Я темный. Ни одной твоей обработки не юзал. (( О великий гуру, пролей свет истины и покажи хоть одну твою великую обработку.
|
|||
94
ProProg
23.10.12
✎
20:48
|
(92) ну а сам подумай. я продал кому то обработку. Нелепо думать что у этого клиента не работало за несколько лет хоть несколько программистов. или он не приглашает постоянно кого-то.
Все эти проги сразу видят сабсистемс. Так что как то глупо полагать что мои обработки никто из 1Сников не видел. Я уж молчу что их франей штук 50 покупали. |
|||
95
ProProg
23.10.12
✎
20:49
|
(93) обязательно попадется клиент) даже не сомневаюсь.
|
|||
96
wizard_forum
23.10.12
✎
20:51
|
никому не нужен крутой код!
всем нужен крутой функционал ))) |
|||
97
zak555
23.10.12
✎
20:52
|
(94) ты продаёшь неработающий код ?
|
|||
98
МишКа
23.10.12
✎
21:08
|
е666кх - крутой код
а все прочее - фигня ))))))))))) |
|||
99
Агент Инфостарта
23.10.12
✎
23:42
|
||||
100
Агент Инфостарта
23.10.12
✎
23:42
|
100
|
|||
101
Злопчинский
23.10.12
✎
23:45
|
Процедура СамыйКрутойКод()
а = а/0; КонецПроцедуры //СамыйКрутойКод() |
|||
102
vde69
23.10.12
✎
23:50
|
&НаКлиенте
Процедура ОбновитьКомпоненту(Команда) ПоддержкаКомпонентыКлиент.ОбновитьКомпоненту(Истина); КонецПроцедуры |
|||
103
vde69
23.10.12
✎
23:54
|
вообще наверно для меня самый красивый код на момент его написания был http://kb.mista.ru/2/doku.php?id=1c:v8:howto:algoritm_sravnenija_dvux_tablic_po_tekstovomu_polju
красивое решение, лаконичный код, отличный результат... эх давно это было, счас наверно так и не напишу.... |
|||
104
Asirius
24.10.12
✎
00:42
|
Код, который стоил заказчику 120штук.
Задача: Элиминация внутрихолдинговых оборотов. Куча правил и исключений, где считаем, а где рыбу заворачиваем... Решение: Фильтр сторнитровочных проводок задается самим закачиком на отборах СКД из типового отчета по проводкам, и финдир не парит мозг программисту. Процедура СформироватьПроводкиЭлиминирования(НастройкаКомпоновки, ТаблицаСторно, Движения, Организация, ОперРегистратор) Экспорт Результат = ПолучитьПроводкиОснования(НастройкаКомпоновки,Организация); ТекПериод = КонецДня(ОтчетПоПроводкам.КонецПериода); Для Каждого СТР из Результат Цикл Если Не ЗначениеЗаполнено(СТР.Регистратор) Тогда Продолжить; КонецЕслИ; Для Каждого СТРСторно из ТаблицаСторно Цикл Запись = Движения.Добавить(); Запись.Организация = Организация; Запись.Период = ТекПериод; Для Каждого Колонка из ТаблицаСторно.Колонки Цикл Если Лев(Колонка.Имя,4)<>"Поле" Тогда Продолжить; КонецЕслИ; ИмяКолонки = Сред(Колонка.Имя,5); ТекЗначение = СТРСторно[ИмяКолонки]; Если ВРЕГ(ИмяКолонки) = "БУДТ" Тогда ИмяКолонки = "Сумма"; КонецЕсли; Если Врег(Лев(ИмяКолонки,8)) = Врег("Субконто") Тогда ЭтоСубконто = Истина; НомерСубконто = Число(Прав(ИмяКолонки,1)); ИмяКолонки = Лев(ИмяКолонки,10); Если Врег(Сред(ИмяКолонки,9,2)) = "ДТ" Тогда ТекСчет = Запись.СчетДТ; Иначе ТекСчет = Запись.СчетКТ; КонецЕсли; Иначе ЭтоСубконто = Ложь; КонецЕсли; ИмяКолонкиКомпановки = СТРЗаменить(СТРСторно[Колонка.Имя],".",""); Если ЭтоСубконто Тогда Если ЗначениеЗаполнено(ТекЗначение) Тогда БухгалтерскийУчет.УстановитьСубконто(ТекСчет, Запись[ИмяКолонки], НомерСубконто, ТекЗначение); Иначе БухгалтерскийУчет.УстановитьСубконто(ТекСчет, Запись[ИмяКолонки], НомерСубконто, СТР[ИмяКолонкиКомпановки]); КонецЕсЛИ; Иначе Если ЗначениеЗаполнено(ТекЗначение) Тогда Запись[ИмяКолонки] = ТекЗначение; Иначе Запись[ИмяКолонки] = СТР[ИмяКолонкиКомпановки]; КонецЕсЛИ; КонецЕсли; КонецЦикла; Если СТрСторно.СТорно Тогда Запись.Сумма = - Запись.Сумма; КонецЕсли; Запись.Регистратор = ОперРегистратор; КонецЦикла; КонецЦикла; КонецПроцедуры Функция ПолучитьПроводкиОснования(НастройкаКомпоновки,ОрганизацияКонсолидации) Экспорт КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ОтчетПоПроводкам.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкаКомпоновки); ТиповыеОтчеты.УстановитьПараметр(ОтчетПоПроводкам.КомпоновщикНастроек, "НачалоПериода", НачалоДня(ОтчетПоПроводкам.НачалоПериода)); ТиповыеОтчеты.УстановитьПараметр(ОтчетПоПроводкам.КомпоновщикНастроек, "КонецПериода", КонецДня(ОтчетПоПроводкам.КонецПериода)); ОтборИсключитьКонсолидацию = ОтчетПоПроводкам.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборИсключитьКонсолидацию.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; ОтборИсключитьКонсолидацию.Использование = Истина; ОтборИсключитьКонсолидацию.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация"); ОтборИсключитьКонсолидацию.ПравоеЗначение = ОрганизацияКонсолидации; МакетКомпоновки = КомпоновщикМакета.Выполнить(ОтчетПоПроводкам.СхемаКомпоновкиДанных, ОтчетПоПроводкам.КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; Результат = Новый ТаблицаЗначений; ПроцессорВывода.УстановитьОбъект(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); Возврат Результат; КонецФункции ЗЫ. Саповцы за аналогичную задачу консолидации запросили тоже 120штук, только уже зелени |
|||
105
КонецЦикла
24.10.12
✎
01:06
|
Код, который ничего не принес, но иногда помогает
Функция ЭтоЧисло(Знач ТекСтр) Экспорт ТекСтр = СокрЛП(ТекСтр); ТекСтр = СтрЗаменить(ТекСтр,"0","9"); Если (СтрДлина(Число(ТекСтр)) <> СтрДлина(ТекСтр)) или ((СтрДлина(ТекСтр) = 1) и (Найти("0123456789",ТекСтр) = 0)) Тогда Возврат 0; КонецЕсли; Возврат 1; КонецФункции // ЭтоЧисло() |
|||
106
Злопчинский
24.10.12
✎
01:30
|
(105) криво..
+1.99 : это нихрена не число |
|||
107
Злопчинский
24.10.12
✎
01:31
|
1.99e-3
1.99d-3 |
|||
108
Азат
24.10.12
✎
01:36
|
в 8-ке практически везде в коде втыкаю условия типа Если 2 = 2... В результате код становится компактным и удобочитаемым))
|
|||
109
zladenuw
24.10.12
✎
02:45
|
(102) давай мне такие задачи. буду от суммы просить 30% :). если за это 120 штук. ы
|
|||
110
zladenuw
24.10.12
✎
02:46
|
(109) и я не жадный. только учусь :)
|
|||
111
DJ Anthon
24.10.12
✎
07:28
|
(55) аа, ну я как раз и использую. а я-то думал, что это быдлокодерство )
|
|||
112
Explorer1c
24.10.12
✎
07:37
|
(104)За этот код 120 штууук?)
|
|||
113
Steel_Wheel
24.10.12
✎
07:41
|
(108) можно сразу если истина тогда писать
|
|||
114
DJ Anthon
24.10.12
✎
08:36
|
(113) неа. привычка с семерки осталась
|
|||
115
Fragster
гуру
24.10.12
✎
08:45
|
(112) наверное это финальный вариант того, что программист переделывал 2 месяца каждый день
|
|||
116
Fragster
гуру
24.10.12
✎
08:46
|
основной гемор в том, что заказчики не знают чего хотят.
|
|||
117
Новиков
24.10.12
✎
09:05
|
(71) это порт Крохотульки на 8. По сравнению с ней жалкая зуповская поделка, а также, аналогичные фиксы, и других пейсателей - где можно правила писать - просто лажа. А то что код нечитаэм...работает? Работает. Лучшего склонятеля должностей и фио пока нет.
|
|||
118
prog01
24.10.12
✎
12:53
|
(104)код хороший
вероятно чтобы хорошо продать хороший код нужен тендер Крупным Системным Интегратором провести |
|||
119
prog01
24.10.12
✎
12:53
|
... тендер с Крупным ...
|
|||
120
olo_lo1
24.10.12
✎
12:56
|
Если НЕ Сообщать=Ложь Тогда
Сообщить("Генитально, но поломать голову придется") |
|||
121
Reset
24.10.12
✎
12:58
|
:)
Не Сообщать<>Не Истина |
|||
122
Reset
24.10.12
✎
12:59
|
блин, ошибся
|
|||
123
olo_lo1
24.10.12
✎
13:04
|
НЕ (Сообщать <> Не ЛОЖЬ)
|
|||
124
Reset
24.10.12
✎
13:06
|
Истина=Ложь;
Если (10=0) = Истина тогда Сообщить("Вот оно как"); КонецЕсли; |
|||
125
Reset
24.10.12
✎
13:07
|
|
|||
126
Reset
24.10.12
✎
13:07
|
аа это OFF
|
|||
127
Reset
24.10.12
✎
13:07
|
код выше рабочий
|
|||
128
Reset
24.10.12
✎
13:08
|
Прошу прощения)
Вот этот рабочий Истинa=Ложь; Если (10=0) = Истинa тогда Сообщить("Вот оно как"); КонецЕсли |
|||
129
oslokot
24.10.12
✎
13:20
|
(125) прошу прощения что не в тему, а где почитать о правилах использования тегов на этом форуме?
|
|||
130
Fragster
гуру
24.10.12
✎
13:24
|
(128) ты засинил мою истину, демон!!!
|
|||
131
Simod
24.10.12
✎
13:41
|
(103) Есть вариант элегантнее:
Функция СинхронизироватьТаблицы(тз_ВсеТовары, тз_ДанныеФайла) тз_Номенклатура = СоздатьОбъект("ТаблицаЗначений"); тз_Номенклатура.НоваяКолонка("Номенклатура", "Справочник.Номенклатура"); тз_ВсеТовары.КоличествоСтрок(тз_ВсеТовары.КоличествоСтрок() + тз_ДанныеФайла.КоличествоСтрок()); тз_ВсеТовары.Заполнить(тз_ДанныеФайла, тз_ВсеТовары.КоличествоСтрок() - тз_ДанныеФайла.КоличествоСтрок() + 1,, "Артикул"); тз_ВсеТовары.Сортировать("Артикул"); п_Артикул = ""; п_Номенклатура = ПолучитьПустоеЗначение("Справочник.Номенклатура"); п_Проверять = 0; тз_ВсеТовары.ВыбратьСтроки(); Пока тз_ВсеТовары.ПолучитьСтроку() = 1 Цикл Если п_Проверять = 1 Тогда Если п_Артикул = тз_ВсеТовары.Артикул Тогда тз_Номенклатура.НоваяСтрока(); тз_Номенклатура.Номенклатура = ?(ПустоеЗначение(п_Номенклатура) = 0, п_Номенклатура, тз_ВсеТовары.Номенклатура); КонецЕсли; п_Проверять = 0; КонецЕсли; Если п_Проверять = 0 Тогда п_Артикул = тз_ВсеТовары.Артикул; п_Номенклатура = тз_ВсеТовары.Номенклатура; п_Проверять = 1; КонецЕсли; КонецЦикла; Возврат тз_Номенклатура; КонецФункции |
|||
132
Asirius
25.10.12
✎
00:40
|
(112) Каюсь... маня покусал, конечно 120 штук не за сам код.
Там сколько еще переговоров было, составление ТЗ, обучение, висение на телефоне и прочая муть. |
|||
133
i-rek
25.10.12
✎
00:59
|
(66) охренеть. Это работает ??
по-моему народ даже не вчитался и не оценил |
|||
134
France
25.10.12
✎
01:10
|
степке разину следующий код обошелся в не один десяток тысяч рублёв:
Для сч=1 по КоличествоБиенийГоловойОбСтену Цикл зы..Саше привет)) |
|||
135
КонецЦикла
25.10.12
✎
02:37
|
(106) Число("+1.99") = 1.99
Только что набрал в табло |
|||
136
Злопчинский
25.10.12
✎
02:59
|
(135) ЭтоЧисло() - возвращает нихрена не число - вы уж определитесь.. ;-)
|
|||
137
skunk
25.10.12
✎
05:18
|
(133)этому бояну уже лет сто в обед ... был тут на мисте спец по разработке функций в одну строку
|
|||
138
Simod
25.10.12
✎
05:56
|
(105) Если в качестве разделителя запятая (","), то не работает.
|
|||
139
prog01
25.10.12
✎
16:42
|
и это всё? )))
|
|||
140
AeDen
25.10.12
✎
16:49
|
(137) Рупор?
|
|||
141
Иван Иваныч
25.10.12
✎
22:55
|
(139) Ну? Продай талант!
|
|||
142
КонецЦикла
26.10.12
✎
03:49
|
(136) Ну добавь еще одну строчку для такого тяжелого случая
|
|||
143
КонецЦикла
26.10.12
✎
03:51
|
(138) См. (142) :)
|
|||
144
Simod
26.10.12
✎
06:45
|
(142) "+1" для твоей функции тоже "тяжелый случай".
|
|||
145
GoroStyle
26.10.12
✎
06:45
|
))) Пустой цикл + Объект.Записать(); в цикле))) Пустой документ, пишущий, что заполнено 99 999 строк и невозможно записать))))(23)
|
|||
146
КонецЦикла
26.10.12
✎
23:00
|
(144) Об этом и писал товарищу в (136) :)
|
|||
147
Zixxx
26.10.12
✎
23:17
|
Функция ПолучитьНужныйРезультат()
Результат = Новый ПолучитьНужныйРезультатк(); КонецФкнции; |
|||
148
Zixxx
26.10.12
✎
23:18
|
(147) + Возврат Результат;
и все |
|||
149
aleks-id
26.10.12
✎
23:22
|
твой код нерабочее хавно.
Функция ПолучитьНужныйРезультат() Возврат ПолучитьНужныйРезультат(); КонецФкнции; |
|||
150
Zixxx
26.10.12
✎
23:27
|
(149) Лошара
Результат = Новый НужныйРезультат(); |
|||
151
aleks-id
26.10.12
✎
23:32
|
(150) сам лошара. и че у тебя будет?
|
|||
152
Zixxx
26.10.12
✎
23:33
|
(151) У меня нужный мне результат, а у тебя дамп
|
|||
153
aleks-id
26.10.12
✎
23:41
|
(152) то что у меня дамп это понятно. а вот что ты получишь? ошибку "тип не определен"? и кто из нас лошара?
|
|||
154
Zixxx
26.10.12
✎
23:43
|
(153) еще раз проверь этот конструктор через ctrl+f1 :) лошара
|
|||
155
aleks-id
26.10.12
✎
23:44
|
(154) физик-теоретик?
|
|||
156
Лефмихалыч
26.10.12
✎
23:52
|
(0) вот самый крутой код:
без него ни хера не работает и сам по себе он РАБОТАЕТ даже, когда вокруг ни чего нет. |
|||
157
aleks-id
26.10.12
✎
23:58
|
(156) нихера пишется слитно )))
|
|||
158
ОбычныйЧеловек
27.10.12
✎
00:08
|
(157) лишь в данном контексте как замена слова "ничего" иначе может писАться и раздельно )
|
|||
159
Tatitutu
27.10.12
✎
08:51
|
для 7.7
"... Игра ПЯТНАШКИ в ДВЕ СТРОЧКИ ВСЕГО..." (для Вашей коллекции) http://infostart.ru/public/62751/ для 8.2 3D в 1С или Стерео Картинки(SIRDS).Не верь своим глазам. http://infostart.ru/public/77536/ "Свернуть" все окна (для обычного приложения) НИ СТРОЧКИ КОДА - НО РАБОТАЕТ :-))))) http://infostart.ru/public/122835/ или все вместе альтернатива http://narod.ru/disk/63000231001.06ebceaec53862f2cc8c284d3a166afc/bestkod.zip.html Размер : 100 кб. |
|||
160
Отладчик
27.10.12
✎
10:30
|
Я вот в 77 чо то забыл как Формат()-ом из даты вернуть название месяца. Формат(ТекущаяДата(), "MMMM") не работает... Поэтому написал свой "формат" одной строчкой:
НазваниеМесяца=Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4,Найти(Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4)," ")-2)+?(СтрДлина(Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4,Найти(Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4)," ")-2))=2,"й",?((СтрДлина(Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4,Найти(Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4)," ")-2))=4)ИЛИ(Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4,Найти(Сред(Формат(НашаДата, "Д (0)ДДММММГГГГ"),4)," ")-2)="Август"),"","ь")); Пример конечно фиговый, но помнится, меня ругали за "код в одну строку", типа нечитабельно, типа другой прогер не поймет... Приходилось наворачивать кучу Если/Иначе |
|||
161
Утконос
27.10.12
✎
13:31
|
(159) не понял!!! Свернуть все окна как работает , где код ?
|
|||
162
Torquader
27.10.12
✎
19:24
|
(160) У меня сначала в глобальнике формируется массив с названиями месяцев, знаками зодиака и прочей мутью, а потом всё выводится из массива - так быстрее и проще.
|
|||
163
Гений 1С
гуру
27.10.12
✎
21:54
|
Правила хорошего кода: http://fixin.com.ru/articles/theory_good_code/article.htm
|
|||
164
СамСуСам
27.10.12
✎
21:57
|
(163) В разделе рефакторинг ошибка.
|
|||
165
Гений 1С
гуру
27.10.12
✎
21:58
|
(164) какая? я не безгрешен
|
|||
166
Отладчик
28.10.12
✎
08:00
|
(162) Функция(НомерМесяца) в нее передаем Месяц(НашаДата)
Возврат Перем Январь[1] ? Г@внокод имхо :) Хотя просто и понятно. Но все же тут меряются, как я заметил. Непонимаю. Пиши просто!! 1С Предприятие - это не среда для разработки операционных систем например, драйверов и т.д. ООП ненужно совершенно для решения задач, под которые собственно и заточено предприятие это! 1С понтуется не по делу, создавая лишь лишний гемор для прогеров. Для таких задач за глаза хватило бы и возможностей 77(возможностей безграничных, если прикрутить нужную DLL, ++, правда это костыли, согласен, но все равно). |
|||
167
Отладчик
28.10.12
✎
08:03
|
(161) Господи боже мой, создай текстовый файл с расширением scf, впиши в него:
[Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop Радуйся. |
|||
168
1C_Patriot
28.10.12
✎
08:38
|
ветка жесть
|
|||
169
Лефмихалыч
28.10.12
✎
09:49
|
(165) во-первых, функция В() должна проверять условие ДелатьВ перед выполнением, во-вторых, новый параметр в функции все равно нужен, что превращает весь твой рефакторинг в навоз
|
|||
170
Алистар
28.10.12
✎
10:08
|
--i++;
//передергивание переменной |
|||
171
Отладчик
28.10.12
✎
10:10
|
(170) В цикл по условию 2*2=4 её!!!
|
|||
172
Алистар
28.10.12
✎
10:10
|
отображать только дату
ЛЕВ(Дата,10); |
|||
173
Отладчик
28.10.12
✎
10:11
|
(172) Делал так. Каюсь.
|
|||
174
andrewalexk
28.10.12
✎
10:26
|
(164) :) ты ведешься на толстый тролинг....генька и хороший код это как ...милый фашизм
|
|||
175
СамСуСам
28.10.12
✎
15:14
|
(174) кто такой фиксин я знаю, также знаю что любой его креатив эталоный пример г@внокода.
|
|||
176
Гений 1С
гуру
28.10.12
✎
15:37
|
(169) ты гонишь. все правильно, только что проверил. Ты функцию и код попутал
функия - со скобочками - Б(); Код - без В; |
|||
177
СамСуСам
28.10.12
✎
15:49
|
(176) Ты конкретно с годами тупеешь. Два твоих куска кода до "рефакторинга" и после имеют разный смысл.
|
|||
178
Vladal
29.10.12
✎
22:13
|
||||
179
Лефмихалыч
29.10.12
✎
22:25
|
(176) во втором варианте, где у тебя проверка условия "Если ДелатьВ Тогда"?
|
|||
180
Tatitutu
29.10.12
✎
22:38
|
(167) не по делу )))
|
|||
181
Stim
29.10.12
✎
22:42
|
Учитель собрал своих учеников и сказал:
- Тому, кто превзойдет меня, вашего учителя - я дам 100 монет. Ученики задумались. И один из них крикнул: - А я дам 200 монет! Тут учитель задумался.. и полез в кошель за деньгами и отдал 100 монет находчивому ученику. |
|||
182
Stim
29.10.12
✎
22:43
|
(178) за такое банить надо. навечно
|
|||
183
Поросенок Петр
29.10.12
✎
23:10
|
(177) Вообще требование не определять параметрами ход функции ещё Фаулер описывал, а фиксин просто где-то прочитал. Это всё старо как г-но мамонта.
|
|||
184
HeroShima
29.10.12
✎
23:14
|
(183) Куита.
|
|||
185
Гений 1С
гуру
30.10.12
✎
00:03
|
(183) это из своей практики
|
|||
186
HeroShima
30.10.12
✎
00:09
|
Определять параметрами ход функции можно, а иногда нужно.
|
|||
187
Гений 1С
гуру
30.10.12
✎
00:14
|
(186) важно понять, когда нужно, когда нет
|
|||
188
HeroShima
30.10.12
✎
00:29
|
(187) когда задаются различные режимы работы одного и того же алгоритма
|
|||
189
6tuf
30.10.12
✎
10:29
|
(123) понравилось, теперь везде так буду писать!
|
|||
190
1Страх
01.11.12
✎
13:02
|
Не мог удержаться, найдя в типовом коде:
СписокТипов.Добавить(Метаданные.Документы["КорректировкаДолга"].Имя, Метаданные.Документы["КорректировкаДолга"].Представление()); |
|||
191
prog01
02.11.12
✎
16:42
|
(163)не превращайся в говорящую лошадь из анегдота приводи примеры кода а не рассуждения методологические
|
|||
192
Popkorm
02.11.12
✎
17:27
|
(23)приз уходит ко мне
Расчет Себестоимости,УПП отдыхает: ВЫБРАТЬ | СпрНоменклатура.Ссылка КАК Номенклатура, | ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаДаги |ПОМЕСТИТЬ Даги |ИЗ | Справочник.Номенклатура КАК СпрНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО СпрНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура | И (ЦеныНоменклатурыСрезПоследних.ТипЦен = &Даг) |ГДЕ | (НЕ СпрНоменклатура.ЭтоГруппа) | И (НЕ СпрНоменклатура.ПометкаУдаления) | И СпрНоменклатура.Ссылка В ИЕРАРХИИ(&Феникс) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДвиженияТовараПрошлыхПериодовОбороты.Номенклатура КАК Номенклатура, | ДвиженияТовараПрошлыхПериодовОбороты.КоличествоОборот КАК КоличествоОборот, | ДвиженияТовараПрошлыхПериодовОбороты.СуммаОборот КАК СуммаОборот, | ДвиженияТовараПрошлыхПериодовОбороты.Период, | ЕСТЬNULL(Даги.ЦенаДаги, 0) КАК ЦенаДаги, | ДвиженияТовараПрошлыхПериодовОбороты.Контрагент, | ДвиженияТовараПрошлыхПериодовОбороты.Проект |ПОМЕСТИТЬ ЦеныДагов |ИЗ | РегистрНакопления.ДвиженияТовараПрошлыхПериодов.Обороты(&ДатаНачало, &ДатаКонец, Запись, ) КАК ДвиженияТовараПрошлыхПериодовОбороты | ЛЕВОЕ СОЕДИНЕНИЕ Даги КАК Даги | ПО ДвиженияТовараПрошлыхПериодовОбороты.Номенклатура = Даги.Номенклатура |ГДЕ | ДвиженияТовараПрошлыхПериодовОбороты.ВидДвиженияПриходРасход = &Расход | И ДвиженияТовараПрошлыхПериодовОбороты.ВидОперацииСТоваром = &КупляПродажи | И ДвиженияТовараПрошлыхПериодовОбороты.Номенклатура В ИЕРАРХИИ(&Феникс) | И (НЕ ДвиженияТовараПрошлыхПериодовОбороты.Склад = &ТранзинНеВРейтинге) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЦеныДагов.Номенклатура, | ВЫБОР | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""1"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""2"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""2.3"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""2.5"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""2.6"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""3.1"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""3.3"" | ТОГДА 0 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""3.5"" | ТОГДА 0.03 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""3.6"" | ТОГДА 0.04 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""3.7"" | ТОГДА 0.04 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""3.8"" | ТОГДА 0.05 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""3.9"" | ТОГДА 0.06 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.0"" | ТОГДА 0.07 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.1"" | ТОГДА 0.07 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.2"" | ТОГДА 0.08 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.3"" | ТОГДА 0.07 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.4"" | ТОГДА 0.09 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.5"" | ТОГДА 0.1 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.6"" | ТОГДА 0.1 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.64"" | ТОГДА 0.1 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.7"" | ТОГДА 0.11 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.74"" | ТОГДА 0.11 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.8"" | ТОГДА 0.12 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.83"" | ТОГДА 0.12 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.9"" | ТОГДА 0.13 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""4.94"" | ТОГДА 0.13 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5"" | ТОГДА 0.13 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.1"" | ТОГДА 0.14 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.15"" | ТОГДА 0.14 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.20"" | ТОГДА 0.14 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.27"" | ТОГДА 0.14 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.3"" | ТОГДА 0.15 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.38"" | ТОГДА 0.15 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.4"" | ТОГДА 0.16 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.5"" | ТОГДА 0.19 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.51"" | ТОГДА 0.19 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.6"" | ТОГДА 0.17 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.64"" | ТОГДА 0.17 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.7"" | ТОГДА 0.18 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.74"" | ТОГДА 0.18 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.78"" | ТОГДА 0.18 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.9"" | ТОГДА 0.19 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""5.93"" | ТОГДА 0.19 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.0"" | ТОГДА 0.2 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.08"" | ТОГДА 0.2 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.1"" | ТОГДА 0.21 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.25"" | ТОГДА 0.21 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.3"" | ТОГДА 0.22 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.4"" | ТОГДА 0.23 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.41"" | ТОГДА 0.23 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.5"" | ТОГДА 0.23 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.6"" | ТОГДА 0.24 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.7"" | ТОГДА 0.25 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.79"" | ТОГДА 0.26 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""6.98"" | ТОГДА 0.28 | КОГДА ЗначенияСвойствОбъектов.Значение.Наименование = ""7.1"" | ТОГДА 0.3 | КОНЕЦ КАК Значение, | ЦеныДагов.КоличествоОборот, | ЦеныДагов.СуммаОборот, | ЦеныДагов.Период, | ЦеныДагов.ЦенаДаги, | ЦеныДагов.Контрагент, | ЦеныДагов.Проект |ПОМЕСТИТЬ Коэффициенты |ИЗ | ЦеныДагов КАК ЦеныДагов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО ЦеныДагов.Номенклатура = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &Коээфиц) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Коэффициенты.Номенклатура, | Коэффициенты.КоличествоОборот, | Коэффициенты.СуммаОборот, | Коэффициенты.Период, | ВложенныйЗапрос.ЦенаКнигаОпт, | Коэффициенты.ЦенаДаги, | ЕСТЬNULL(Коэффициенты.Значение, 0.09) КАК Значение1, | ЕСТЬNULL(ВложенныйЗапрос.ЦенаКнОпт, 0) КАК КнОптовые, | Коэффициенты.Контрагент, | Коэффициенты.Проект |ПОМЕСТИТЬ КнОптКоэфф |ИЗ | Коэффициенты КАК Коэффициенты | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, | ЦеныНоменклатурыСрезПоследних.Цена / 2 КАК ЦенаКнигаОпт, | ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаКнОпт, | ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен | ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних) КАК ВложенныйЗапрос | ПО Коэффициенты.Номенклатура = ВложенныйЗапрос.Номенклатура | И (ВложенныйЗапрос.ТипЦен = &КнигаОпт) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | КнОптКоэфф.Период, | КнОптКоэфф.Номенклатура КАК Номенклатура, | ЕСТЬNULL(КнОптКоэфф.ЦенаДаги, 0) КАК ЦенаДаги, | ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, 0.001) КАК Тиражи, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ЦеныАвторские, | ЕСТЬNULL(КнОптКоэфф.ЦенаКнигаОпт, 1) КАК КнигаОпт, | КнОптКоэфф.КоличествоОборот КАК КоличествоПродажи, | КнОптКоэфф.СуммаОборот КАК СуммаПродажи, | ЦеныНоменклатурыСрезПоследних1.Цена КАК УчМакет, | КнОптКоэфф.Значение1 КАК Коэффициенты, | КнОптКоэфф.КнОптовые, | КнОптКоэфф.Контрагент, | КнОптКоэфф.Проект |ПОМЕСТИТЬ АвторИТираж |ИЗ | КнОптКоэфф КАК КнОптКоэфф | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО КнОптКоэфф.Номенклатура = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &Тираж) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО КнОптКоэфф.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И (ЦеныНоменклатурыСрезПоследних.ТипЦен = &Авторские) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних1 | ПО КнОптКоэфф.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура | И (ЦеныНоменклатурыСрезПоследних1.ТипЦен = &УчетМакет) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | АвторИТираж.Период, | АвторИТираж.Номенклатура КАК Номенклатура, | АвторИТираж.ЦенаДаги, | АвторИТираж.ЦеныАвторские, | (ВЫРАЗИТЬ(АвторИТираж.Тиражи КАК ЧИСЛО)) * 1000 КАК Тираж, | АвторИТираж.КнигаОпт, | АвторИТираж.УчМакет, | АвторИТираж.КоличествоПродажи КАК КоличествоПродажи, | АвторИТираж.СуммаПродажи КАК СуммаПродажи, | АвторИТираж.Коэффициенты, | АвторИТираж.КнОптовые, | ЕСТЬNULL(АвторИТираж.КнигаОпт * АвторИТираж.Коэффициенты, 0) КАК РезультатКоэффиц, | ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК ЧИСЛО) КАК КнСебестоимость, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК УчетнаяЦена, | АвторИТираж.Контрагент, | АвторИТираж.Проект |ПОМЕСТИТЬ АвторскийГанорар |ИЗ | АвторИТираж КАК АвторИТираж | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО АвторИТираж.Номенклатура = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &КнигаСебестоимость) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО АвторИТираж.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И (ЦеныНоменклатурыСрезПоследних.ТипЦен = &Учетная) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | АвторскийГанорар.Период, | АвторскийГанорар.Номенклатура КАК Номенклатура, | АвторскийГанорар.ЦенаДаги, | АвторскийГанорар.ЦеныАвторские, | АвторскийГанорар.Тираж, | АвторскийГанорар.КнигаОпт, | ЕСТЬNULL(АвторскийГанорар.УчМакет, АвторскийГанорар.УчетнаяЦена) КАК УчетныеЦены, | АвторскийГанорар.КоличествоПродажи КАК КоличествоПродажи, | АвторскийГанорар.СуммаПродажи КАК СуммаПродажи, | АвторскийГанорар.Коэффициенты, | АвторскийГанорар.КнОптовые, | ВЫБОР | КОГДА АвторскийГанорар.ЦеныАвторские = 0 | ТОГДА АвторскийГанорар.РезультатКоэффиц | ИНАЧЕ АвторскийГанорар.ЦеныАвторские / АвторскийГанорар.Тираж | КОНЕЦ КАК Авторские, | АвторскийГанорар.РезультатКоэффиц, | ЕСТЬNULL(АвторскийГанорар.КнСебестоимость, 0) КАК КнСебестоимость, | АвторскийГанорар.Контрагент, | АвторскийГанорар.Проект |ПОМЕСТИТЬ Себестоимость |ИЗ | АвторскийГанорар КАК АвторскийГанорар |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Себестоимость.Период, | Себестоимость.Номенклатура КАК Номенклатура, | ЗначенияСвойствОбъектов.Значение КАК Редакция, | Себестоимость.ЦеныАвторские КАК АвторскийГанорар, | Себестоимость.ЦенаДаги, | Себестоимость.Тираж, | Себестоимость.КнигаОпт, | Себестоимость.Коэффициенты, | Себестоимость.КоличествоПродажи КАК КоличествоПродажи, | Себестоимость.СуммаПродажи КАК СуммаПродажи, | Себестоимость.КнОптовые, | Себестоимость.Авторские, | Себестоимость.РезультатКоэффиц, | Себестоимость.КнСебестоимость, | ВЫБОР | КОГДА Себестоимость.УчетныеЦены = 0 | ТОГДА Себестоимость.КнСебестоимость | ИНАЧЕ Себестоимость.УчетныеЦены | КОНЕЦ КАК УчетИСебестоимость, | Себестоимость.Контрагент, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ЦенаБонусы, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних1.Цена, 0) КАК ЦенаБайер, | Себестоимость.Проект |ПОМЕСТИТЬ редактор |ИЗ | Себестоимость КАК Себестоимость | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО Себестоимость.Номенклатура = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &Редакции) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО Себестоимость.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И (ЦеныНоменклатурыСрезПоследних.ТипЦен = &БонусыУчебные) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних1 | ПО Себестоимость.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура | И (ЦеныНоменклатурыСрезПоследних1.ТипЦен = &ВознБайера) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | редактор.Период, | редактор.Номенклатура, | редактор.Редакция, | редактор.АвторскийГанорар, | редактор.ЦенаДаги, | редактор.Тираж, | редактор.Коэффициенты, | редактор.СуммаПродажи / редактор.КоличествоПродажи КАК ЦенаПродажи, | редактор.КоличествоПродажи, | редактор.СуммаПродажи, | редактор.КнигаОпт, | редактор.КнОптовые, | редактор.Авторские, | редактор.РезультатКоэффиц, | редактор.КнСебестоимость, | редактор.УчетИСебестоимость, | ВЫБОР | КОГДА редактор.Коэффициенты = 0 | ТОГДА (редактор.УчетИСебестоимость + редактор.ЦенаБонусы + редактор.ЦенаБайер) * 1.8 | ИНАЧЕ (редактор.Авторские + редактор.УчетИСебестоимость + редактор.ЦенаБонусы + редактор.ЦенаБайер) * 1.8 | КОНЕЦ КАК СтоимостьАвтор, | редактор.Контрагент, | редактор.ЦенаБонусы, | редактор.ЦенаБайер, | редактор.Проект |ПОМЕСТИТЬ Прибыльность |ИЗ | редактор КАК редактор |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Прибыльность.Период, | Прибыльность.Номенклатура КАК Номенклатура, | Прибыльность.Редакция, | Прибыльность.АвторскийГанорар, | Прибыльность.ЦенаДаги, | Прибыльность.Тираж, | Прибыльность.Коэффициенты, | Прибыльность.ЦенаПродажи, | Прибыльность.КоличествоПродажи КАК КоличествоПродажи, | Прибыльность.СуммаПродажи КАК СуммаПродажи, | Прибыльность.КнигаОпт, | Прибыльность.КнОптовые, | Прибыльность.Авторские, | Прибыльность.РезультатКоэффиц, | Прибыльность.КнСебестоимость, | Прибыльность.СтоимостьАвтор, | ВЫБОР | КОГДА Прибыльность.ЦенаДаги = 0 | ТОГДА Прибыльность.СтоимостьАвтор | ИНАЧЕ (Прибыльность.ЦенаДаги + Прибыльность.УчетИСебестоимость + Прибыльность.ЦенаБонусы + Прибыльность.ЦенаБайер) * 1.8 | КОНЕЦ КАК СебестОднойКниги, | Прибыльность.УчетИСебестоимость, | Прибыльность.Контрагент, | Прибыльность.ЦенаБонусы, | Прибыльность.ЦенаБайер, | Прибыльность.Проект |ПОМЕСТИТЬ Приб |ИЗ | Прибыльность КАК Прибыльность |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Приб.Период, | Приб.Номенклатура КАК Номенклатура, | Приб.Редакция, | Приб.ЦенаДаги, | Приб.АвторскийГанорар, | Приб.Авторские, | Приб.РезультатКоэффиц, | Приб.Коэффициенты, | Приб.Тираж, | Приб.КнСебестоимость, | Приб.КнОптовые, | Приб.КнигаОпт, | Приб.ЦенаПродажи, | Приб.КоличествоПродажи КАК КоличествоПродажи, | Приб.СуммаПродажи КАК СуммаПродажи, | Приб.СебестОднойКниги, | Приб.СебестОднойКниги * Приб.КоличествоПродажи КАК СебестоимостьКниг, | Приб.УчетИСебестоимость, | Приб.Контрагент, | Приб.ЦенаБонусы, | Приб.ЦенаБайер, | Приб.Проект |ПОМЕСТИТЬ СебКниги |ИЗ | Приб КАК Приб |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СебКниги.Период, | СебКниги.Номенклатура, | СебКниги.Редакция, | СебКниги.ЦенаДаги, | СебКниги.АвторскийГанорар, | СебКниги.Авторские, | СебКниги.РезультатКоэффиц, | СебКниги.Коэффициенты, | СебКниги.Тираж, | СебКниги.КнСебестоимость, | СебКниги.КнОптовые, | СебКниги.КнигаОпт, | СебКниги.ЦенаПродажи, | СебКниги.КоличествоПродажи, | СебКниги.СуммаПродажи, | СебКниги.СебестОднойКниги, &nb |
|||
193
YHVVH
02.11.12
✎
17:31
|
вот еще примерчик
Запрос.Текст ="ВЫБРАТЬ &Звезда ИЗ Справочник.Номенклатура"; Запрос.Текст = СтрЗаменить( Запрос.Текст , "&Звезда" , "*" ); |
|||
194
prog01
02.11.12
✎
17:35
|
(193)вау... это типа юмор программистов?
|
|||
195
YHVVH
02.11.12
✎
17:37
|
(194) главное что имеет смысл этот код. я долго думал зачем так сделано.
|
|||
196
Fragster
гуру
02.11.12
✎
17:38
|
(195) изобретение построителя запросов своими руками
|
|||
197
Fragster
гуру
02.11.12
✎
17:38
|
(196)+ там может дальше есть что-нибудь типа "если условие тогда Запрос.Текст = СтрЗаменить( Запрос.Текст , "&Звезда" , "Наименование, Ссылка, ЕщеКакоеНибудьПоле" );"
|
|||
198
YHVVH
02.11.12
✎
17:39
|
(197) нетю, а зачем?
|
|||
199
YHVVH
02.11.12
✎
17:40
|
кусок самого текста правда другой но смысл не меняется.
|
|||
200
CaMoJleT
02.11.12
✎
17:40
|
200
|
|||
201
YHVVH
02.11.12
✎
17:44
|
(196) если * ставить сразу и открывать конструктором, то он заменяет * на кучу полей, если реквизитов много то получается большой не красивый запрос. чтоб такого не было * прячут в параметр.
|
|||
202
Popkorm
02.11.12
✎
17:54
|
(195)на УПП денег небыло
|
|||
203
Fragster
гуру
02.11.12
✎
17:56
|
(201) хитро!
|
|||
204
Fragster
гуру
02.11.12
✎
17:57
|
(203)+ только конструктор сделает &Звезда КАК Поле1 и смысл потеряется
|
|||
205
Fragster
гуру
02.11.12
✎
17:58
|
ух ты! не делает!
|
|||
206
prog01
06.11.12
✎
15:45
|
долго думал что сюда запостить самому решил выложить то что применяется везде для выявления косяков так называемых в учете с некоторыми переписываниями для обхода типов документов некоторых (проводить если нужно не все документы) или проведение ещё по флагу можно сделать до перепроведения если перепроведение уверенно состоится но нужно обойти конфликт блокировок
из раннего так сказать ))) Процедура ПерепровестиБазу(НачалоПериода, КонецПериода) Экспорт УстановитьПривилегированныйРежим(Истина); Если НачалоПериода >= КонецПериода Тогда Сообщить("Выберите период", СтатусСообщения.Важное); Возврат; КонецЕсли; ЗатраченноеВремя = ТекущаяДата(); Запрос = Новый Запрос; Запрос.Текст = ""; Для Каждого Документ Из Метаданные.Документы Цикл Если Документ.Реквизиты.Найти("Организация") = Неопределено Тогда Продолжить; КонецЕсли; Если Запрос.Текст <> "" Тогда Запрос.Текст = Запрос.Текст + " Объединить Все "; КонецЕсли; Запрос.Текст = Запрос.Текст + " ВЫБРАТЬ " + " Ссылка " + " КАК Ссылка " + " , МоментВремени " +" КАК МоментВремени " + " , Дата " +" КАК Дата " + " ИЗ " + " Документ." + Документ.Имя + " ГДЕ Ссылка.Дата > &НачалоПериода И Ссылка.Дата < &КонецПериода"; Состояние(Документ); КонецЦикла; Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецПериода); ТаблицаДокументов = Запрос.Выполнить().Выгрузить(); ТаблицаДокументов.Сортировать("Дата, МоментВремени"); ПродолжатьСортировку = Истина; Индекс = 0; Если ТаблицаДокументов.Количество() = 0 Тогда Возврат; КонецЕсли; Пока ПродолжатьСортировку Цикл Для Каждого Строка Из ТаблицаДокументов Цикл Если (ТаблицаДокументов.Индекс(Строка) + 1) = ТаблицаДокументов.Количество() Тогда ПродолжатьСортировку = Ложь; Прервать; КонецЕсли; Если Строка.МоментВремени.Сравнить(ТаблицаДокументов.Получить(ТаблицаДокументов.Индекс(Строка) + 1).МоментВремени) = 1 Тогда ТаблицаДокументов.Сдвинуть(Строка, 1); Состояние("Идёт сортировка: " + Строка.МоментВремени); Прервать; КонецЕсли; КонецЦикла; КонецЦикла; Сообщить(ТаблицаДокументов.Количество()); Для Каждого Строка Из ТаблицаДокументов Цикл ОбработкаПрерыванияПользователя(); Если Строка.Ссылка.Проведен = Истина Тогда Состояние(Строка.Ссылка); Попытка Сообщить("Проводится:" + Строка.Ссылка); Строка.Ссылка.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный ); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; Если Строка.Ссылка.Проведен = Ложь Тогда Состояние(Строка.Ссылка); Попытка Сообщить("Записывается:" + Строка.Ссылка); Строка.Ссылка.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Запись); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецЦикла; ЗатраченноеВремя = ТекущаяДата() - ЗатраченноеВремя; Сообщить("Затрачено: " + ЗатраченноеВремя + " секунд."); КонецПроцедуры |
|||
207
vde69
06.11.12
✎
18:15
|
ну тогда еще примерчик
Процедура Расчет(ТЗ) Если ложь Тогда ТЗ = Новый("ТаблицаЗначений"); КонецЕсли; .... |
|||
208
Fragster
гуру
06.11.12
✎
18:20
|
(207) это чтобы паролия на интеллисенс работала
|
|||
209
Fragster
гуру
06.11.12
✎
18:20
|
*пародия
|
|||
210
vde69
06.11.12
✎
18:35
|
(208) нет, это просто что-бы дальше телепат воспринимал переменную ТЗ
|
|||
211
Fragster
гуру
06.11.12
✎
18:53
|
(210) я ж так и написал
|
|||
212
prog01
08.11.12
✎
13:21
|
приподниму:
Процедура ОбновитьСерии() Экспорт ПодключитьсяК_SQL_UPP(); Сообщить("Серии"); УстановитьПривилегированныйРежим(Истина); ТекстЗапроса = "SELECT derivedtbl_1.ID as ID |--, _Reference221._Fld25736 |FROM OPENQUERY(boss4, ' SELECT ID FROM CommonBase_Sclad.dbo.SC214 ') AS derivedtbl_1 left OUTER JOIN | _Reference221 ON ltrim(rtrim(derivedtbl_1.ID)) = ltrim(rtrim(_Reference221._Fld25736)) | where _Fld25736 is null |--ORDER BY _Reference221._Fld25736"; Command.CommandText = ТекстЗапроса; Command.CommandTimeout = 600; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet = Command.Execute(); Сообщить(ТекущаяДата()); Счетчик = 0; Пока RecordSet.EOF() = 0 Цикл Счетчик = Счетчик + 1; Если Счетчик/100 - Цел(Счетчик/100) = 0 Тогда Состояние = "" + Счетчик; Состояние(Состояние + " " + СчетчикПереЗаписанных); КонецЕсли; ОбработкаПрерыванияПользователя(); ID = RecordSet.Fields("ID").Value; ОбновитьЭлементСерии(ID); RecordSet.MoveNext(); КонецЦикла; Сообщить(ТекущаяДата()); Сообщить(Счетчик); RecordSet.Close(); Сообщить("Перезаписано: " + СчетчикПереЗаписанных); ОтключитьсяОт_SQL_UPP(); КонецПроцедуры |
|||
213
prog01
14.11.12
✎
16:02
|
||||
214
Wasya
14.11.12
✎
17:12
|
Не мое
Пока Вопрос("Прошло 0,6 секунды?","Да+Нет")="Нет" Цикл КонецЦикла; |
|||
215
sapphire
03.12.12
✎
22:04
|
(212) Код = г...но
|
|||
216
БАМБР2013
04.12.12
✎
22:26
|
Процедура ПечататьШаблонДоговораБрони(ИмяФайлаНаКлиенте,ПараметрКоманды)
Попытка ДокументWord = ПолучитьCOMОбъект(ИмяФайлаНаКлиенте); Исключение ОписаниеОшибкиТекст = ОписаниеОшибки(); ТекстСообщения = "Печать невозможна, обратитесь к системному администратору. Возможно не установлен MS Word: "+ ОписаниеОшибкиТекст; ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); Возврат; КонецПопытки; СтруктураПараметров = СформироватьПараметрыШаблонаДоговора(ПараметрКоманды); ДокументWord.Application.Visible = Ложь; Документ = ДокументWord.Application.Documents(1); Документ.Activate(); Для Каждого ЭлементСтруктуры из СтруктураПараметров Цикл ПараметрСтруктуры = "["+СокрЛП(ЭлементСтруктуры.Ключ)+"]"; ЗначениеПараметраСтруктуры = ЭлементСтруктуры.Значение; Замена = Документ.Content.Find; //замена один раз //Замена.Execute(ПараметрСтруктуры, Ложь, Истина, Ложь, , , Истина, , Ложь, ЗначениеПараметраСтруктуры); //замена до победного конца Замена.Execute(ПараметрСтруктуры,1,,,,,,,,ЗначениеПараметраСтруктуры,2); КонецЦикла; //Прописываем ТекстВерхнегоКолонтитула Документ.Application.ActiveDocument.Sections(1).Headers(1).Range.Text= СтруктураПараметров.ТекстВерхнегоКолонтитула; Документ.Application.ActiveDocument.Sections(1).Headers(1).Range.Font.Italic = 9999998; Документ.Application.ActiveDocument.Sections(1).Headers(1).Range.Font.Underline = 1; Если СтруктураПараметров.СчетчикВыводимыхФизлиц = 1 Тогда Документ.Application.Selection.GoTo(-1,,0,"ФизЛицоПодпись1"); Документ.Application.Selection.Cut(); Документ.Application.Selection.GoTo(-1,,0,"ФизЛицоПодпись2"); Документ.Application.Selection.Cut(); ИначеЕсли СтруктураПараметров.СчетчикВыводимыхФизлиц = 2 Тогда Документ.Application.Selection.GoTo(-1,,0,"ФизЛицоПодпись2"); Документ.Application.Selection.Cut(); КонецЕсли; Если СтруктураПараметров.СократитьСтраницуПриПечати Тогда Попытка Документ.Application.ActiveDocument.FitToPages(); Исключение ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось сократить на страницу при печати"); КонецПопытки; КонецЕсли; КоличествоЛистовWord = Документ.Application.ActiveDocument.ComputeStatistics(2); КоличествоЛистовWordПропись = СокрЛП(СтрЗаменить(ЧислоПрописью(КоличествоЛистовWord),0,"")); Документ.Content.Find.Execute("[КоличествоСтраницДокумента]",1,,,,,,,,КоличествоЛистовWord,2); Документ.Content.Find.Execute("[КолСтрДокПроп]",1,,,,,,,,КоличествоЛистовWordПропись,2); Если КоличествоЛистовWord > 1 Тогда Документ.Application.ActiveDocument.Sections(1).Footers(1).Range.Text=СтруктураПараметров.ТекстНижнегоКолонтитула; Документ.Application.ActiveDocument.Sections(1).Footers(1).PageNumbers.Add(2, Истина); КонецЕсли; //Защита документа Если НЕ СтруктураПараметров.НеСтандартныйДоговор Тогда //устанавливаем защиту Документ.Application.ActiveDocument.Protect(2,Ложь,СокрЛП(ТекущаяДата()),Ложь,Ложь); КонецЕсли; Документ.Application.ActiveDocument.Save(); ДокументWord.Application.Visible = Истина; ДокументWord.Activate(); КонецПроцедуры |
|||
217
СамСуСам
05.12.12
✎
00:09
|
Предупреждение("Это работает!");
|
|||
218
Злопчинский
05.12.12
✎
00:19
|
Предупреждение("Это работает!",-1);
- круче |
|||
219
Злопчинский
05.12.12
✎
00:21
|
(210) телепат вроде воспринимает чтото типа такого
ТипаЭтоТЗНоНеобявлена=глОтобратьПоКолонке(исходнаяТЗ..); //:ТаблицаЗначений |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |