-
−124
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
Результат = Запрос.Выполнить();
Если Результат.Выгрузить().Количество() <> 0 Тогда
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
... тут некий код... и внутри контрольный в голову...
Если ТЗ.Количество() <> 0 Тогда
Для Каждого Строка Из ТЗ Цикл
...
КонецЦикла;
КонецЕсли;
...
КонецЦикла;
КонецЕсли;
Видимо это такая "оптимизация", другого объяснения подобным проверкам (это не единичный случай) не нашел.
Twilight_Sun,
27 Октября 2014
-
−124
- 1
- 2
<?"Объект">_и="";<?"Объект">_с=0;<?"Объект">_кол=<?"Объект">.Количество();<?"Объект">_нд=ТекущаяДата();<?"Объект">_пд=<?"Объект">_нд;
<?"Объект">_с=<?"Объект">_с+1;Если <?"Объект">_пд<>ТекущаяДата() Тогда <?"Объект">_пд=ТекущаяДата();<?"Объект">_ост=(<?"Объект">_пд-<?"Объект">_нд)/<?"Объект">_с*(<?"Объект">_кол-<?"Объект">_с);Состояние(<?"Объект">_и+Формат(<?"Объект">_с/<?"Объект">_кол*100,"ЧДЦ=1;")+"% "+формат('00010101'+<?"Объект">_ост,"ДФ=ЧЧ:мм:сс"));КонецЕсли;
Шаблон для строки состояния. Видимо, первая строка вставляется перед циклом, вторая внутри.
anacefalus,
24 Октября 2014
-
−127
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
теСтрокаТЗ_двухТЧ=ТЗ_двухТЧ_РТиУ.Найти(СокрЛП(ЗначениеВСтрокуВнутр(теСтрокаТЧ.Номенклатура))+"++"+Строка(ё)+"++"+Строка(теСтрокаТЧ.НомерСтроки),"Ид");
теСтрокаТЗ_НДС_БезТекРТиУ=ТЗ_НДС_БезТекРТиУ.Найти(теСтрокаТЧ.Номенклатура);
ТЗостНмЗаказаБезТекРТиУ=ПолучитьТЗ_НоменклатурыЗаказа(текущСделка, РТиУобъ.Ссылка, ТекДата, ТекДата, ДокиЗаказаПлан, теСтрокаТЧ.Номенклатура);
Если ТЗостНмЗаказаБезТекРТиУ.Количество()>0 И ТЗостНмЗаказаБезТекРТиУ.Итог("СуммаКолвоПоНм")=ТЗотбора1.Итог("КолвоВ_ЕдХр") Тогда
РазностьСум=ТЗостНмЗаказаБезТекРТиУ.Итог("СуммаСуммВзаиморасчПоНм")-(ТЗотбора1.Итог("Сумма")+?(текущСуммаВключаетНДС,0,ТЗотбора1.Итог("СуммаНДС")));
Если РазностьСум<>0 И ПолучитьМодульЧисла(РазностьСум)<=Константы.опмМаксимальноеКорректируемоеВторымСпособомОтклонениеСуммОтгрузкиОтЗаказа.Получить() Тогда
теСтрокаТЧ.Сумма=теСтрокаТЧ.Сумма+РазностьСум*ЗнакТипаДок; теСтрокаТЗ_двухТЧ.Сумма=теСтрокаТЗ_двухТЧ.Сумма+РазностьСум;
КонецЕсли;
Если ВсеОтгрузкиВВалютеЗаказа И НЕ теСтрокаТЗ_НДС_БезТекРТиУ=Неопределено Тогда
РазностьСумНДС=теСтрокаТЗ_НДС_БезТекРТиУ.СуммаНДС-ТЗотбора1.Итог("СуммаНДС");
Если РазностьСумНДС<>0 И ПолучитьМодульЧисла(РазностьСумНДС)<=Константы.опмМаксимальноеКорректируемоеВторымСпособомОтклонениеСуммОтгрузкиОтЗаказа.Получить() Тогда
теСтрокаТЧ.СуммаНДС=теСтрокаТЧ.СуммаНДС+РазностьСумНДС*ЗнакТипаДок; теСтрокаТЗ_двухТЧ.СуммаНДС=теСтрокаТЗ_двухТЧ.СуммаНДС+РазностьСумНДС;
Если НЕ текущСуммаВключаетНДС Тогда
теСтрокаТЧ.Сумма=теСтрокаТЧ.Сумма -РазностьСумНДС*ЗнакТипаДок; теСтрокаТЗ_двухТЧ.Сумма=теСтрокаТЗ_двухТЧ.Сумма -РазностьСумНДС;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗаказПокВыполненПолностью Тогда СтрокаТЗпоНм=ТЗ_НепоставленнойНмЗаказа.Найти(теСтрокаТЧ.Номенклатура);
Если НЕ СтрокаТЗпоНм=Неопределено Тогда
ТЗ_НепоставленнойНмЗаказа.Удалить(СтрокаТЗпоНм);
КонецЕсли;
КонецЕсли;
Иначе ЗаказПокВыполненПолностью=Ложь;
КонецЕсли;
HomoAlbus,
10 Октября 2014
-
−122
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
Процедура Сформировать()
СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");
СпрКонтр.ВыбратьЭлементы();
Пока СпрКонтр.ПолучитьЭлемент()=1 Цикл
Сообщить(СпрКонтр.Наименование);
Спр = СоздатьОбъект("Справочник.ТорговыеТочки");
Спр.ИспользоватьВладельца(СпрКонтр.ТекущийЭлемент());
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
Сообщить(Спр.Наименование);
Х = СокрЛп(Спр.Код);
У = "";
Если Х="80002963" Тогда У = "68000550";
ИначеЕсли Х="80002964" Тогда У = "68000549";
ИначеЕсли Х="80004172" Тогда У = "68000551";
....................................
ИначеЕсли Х="80004503" Тогда У = "68000811";
ИначеЕсли Х="80003952" Тогда У = "68001300";
КонецЕсли;
Если У <> "" Тогда
Спр.CASID = У;
Спр.Записать();
КонецЕсли;
КонецЦикла;
КонецЦикла;
Сообщить("Обработка завершена!");
КонецПроцедуры
Прислали обработку проставления определенного значения реквизита... Чуть со стула не упали... Всего 619 условий...
jerokee,
30 Сентября 2014
-
−125
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Попытка
// Для редких случаев, когда ЭтотОбъект неопределен
// проверку на режим обмена данными делаем через попытку
Загрузка = ЭтотОбъект.ОбменДанными.Загрузка;
Если Загрузка Тогда
// если текущий режим Загрузка, то производим минимум проверок
// т.к. все проверки были произведены в ИБ источнике
Возврат Ложь;
КонецЕсли;
ДопЗагрузка = Неопределено;
Если НЕ Загрузка Тогда
ЭтотОбъект.ДополнительныеСвойства.Свойство("Загрузка",ДопЗагрузка);
Загрузка = ?(НЕ ДопЗагрузка = Неопределено,ДопЗагрузка,Загрузка);
КонецЕсли;
Если Загрузка Тогда
Возврат Ложь;
КонецЕсли;
Исключение КонецПопытки;
Переменная "Загрузка" может принимать только 2 значения.
Mortum,
24 Сентября 2014
-
−126
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыйДокумент = Документы.ДокументПредЗаявка.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
СПД = НовыйДокумент.Ссылка;
//Открываем документ
ОткрытьЗначение(СПД);
КонецПроцедуры
Я не вкурил, но полагаю, что ЭТО новый способ создания документа на основании...
Danik,
15 Сентября 2014
-
−126
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
ТовМат = РегистрыСведений.ТоварнаяМартица;
ГруппаД = Справочники.КлассификацияABC.НайтиПоНаименованию("Д").Ссылка;
ТЗНомен = Запрос.Выполнить().Выгрузить();Ит=0;тСерт = Справочники.СертификатыСоответствия.ПустаяСсылка();
ТЗНомен.Сортировать("Производитель,Сертификат,Номенклатура");
тПроизвод="";
Для Каждого стр Из ТзНомен Цикл
Если Объект.ИсключитьТоварыГруппыД = Истина Тогда
Если стр.Номенклатура.КлассABC = ГруппаД Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если стр.Номенклатура.ЭтоГруппа = Ложь Тогда
Если НаличиеВМатрице = истина Тогда
НаборД = ТовМат.СоздатьНаборЗаписей();
// устанавливаем параметры отбора по полному набору Измерений регистра:
НаборД.Отбор.нОменклатура.Установить(стр.Номенклатура.Ссылка);
НаборД.Прочитать();
Если НаборД.Количество() = 0 Тогда
Продолжить;
Конецесли;
КонецЕсли;
Бывший программист из нашей конторы отбирает строки таблицы с номенклатурой, по которой отсутствуют записи в регистре сведений, используя при этом другие "удивительные приемы программирования"... Ушел на повышение в саму 1С)))
GORYNY4,
12 Сентября 2014
-
−168
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Процедура ПриЗаписи(Отказ)
Док = Ссылка.ПолучитьОбъект();
Док.ОбменДанными.Загрузка = Истина;
Док.Записать();
КонецПроцедуры
И это все в форме документа
alexinzaz,
11 Сентября 2014
-
−165
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Попытка
ДокО.Записать();
Исключение
Попытка
ДокО.Записать();
Исключение
КонецПопытки;
КонецПопытки;
а вдруг!
alexinzaz,
10 Сентября 2014
-
−169
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
// Параметры - реквизит объекта. Больше (!) нигде не используется.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ЭтоНовый() Тогда
Параметры = "000001000";
КонецЕсли;
ФлагОписания = ?(Сред(Параметры,7,1) = "1", Истина, Ложь);
ФлагМестоX = ?(Сред(Параметры,8,1) = "1", Истина, Ложь);
ФлагМестоY = ?(Сред(Параметры,9,1) = "1", Истина, Ложь);
КонецПроцедуры
Процедура СменаФлага()
Параметры = Лев(Параметры,6)+Строка(Число(ФлагОписания))+Строка(Число(ФлагМестоX))+Строка(Число(ФлагМестоY));
КонецПроцедуры
Процедура ФлагОписанияПриИзменении(Элемент)
СменаФлага();
КонецПроцедуры
Процедура ФлагМестоXПриИзменении(Элемент)
СменаФлага();
КонецПроцедуры
Процедура ФлагМестоYПриИзменении(Элемент)
СменаФлага();
КонецПроцедуры
Хотел быть шифровальщиком, но кривая дорожка жизни…
safer_bwd,
04 Сентября 2014