Имя: Пароль:
LIFE
Юмор
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
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

Истина=Ложь;

Если (10=0) = Истина тогда
Сообщить("Вот оно как");
КонецЕсли;
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
нашел в интернетах прикольный код
http://zalil.ru/33960811
111
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) телепат вроде воспринимает чтото типа такого

ТипаЭтоТЗНоНеобявлена=глОтобратьПоКолонке(исходнаяТЗ..); //:ТаблицаЗначений
AdBlock убивает бесплатный контент. 1Сергей