- 1
- 2
- 3
- 4
- 5
Если пФорма<>1 Тогда
СтрокаСФ="№";
Иначе
СтрокаСФ="№";
КонецЕсли;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−117
Если пФорма<>1 Тогда
СтрокаСФ="№";
Иначе
СтрокаСФ="№";
КонецЕсли;
Загадочное условие в печатной форме ветеринарного свидетельства :)
−364
Если (ДатаГод(ДатаДок) < 2010) ИЛИ (ДатаГод(ДатаДок) < 2010 ) Тогда
Строка кода из типовой конфигурации 1С: Бухгалтерия 7.7, релиз 522
No comments ...
−125
//Николай
//проверяем артикул и если его нет, то генерируем
Если ПустаяСтрока(Артикул) Тогда
Запрос = Новый Запрос("ВЫБРАТЬ
| МАКСИМУМ(Номенклатура.Артикул) КАК ТекАртикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура");
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
ТекКод = ?(Выборка.ТекАртикул = NULL, 1, Мин(ОбщегоНазначения.ПривестиСтрокуКЧислу(Выборка.ТекАртикул) + 8000, 9999999));
ТекАртикул = Формат(ТекКод, "ЧЦ=7; ЧВН=; ЧГ=");
//проверяем дальше
Выход=0;
Пока Выход=0 Цикл
Запрос = Новый Запрос("ВЫБРАТЬ
| Номенклатура.Артикул КАК ТекАртикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул = &Артикул");
Запрос.УстановитьПараметр("Артикул", ТекАртикул);
Выборка = Запрос.Выполнить().Выбрать();
Нашли = Выборка.Следующий();
Если Нашли Тогда
ТекАртикул=Мин(ОбщегоНазначения.ПривестиСтрокуКЧислу(ТекАртикул) + 1, 9999999);
ТекАртикул = Формат(ТекАртикул, "ЧЦ=7; ЧВН=; ЧГ=");
Иначе
Выход=1;
КонецЕсли
КонецЦикла;
Артикул=ТекАртикул;
КонецЕсли;
//Николай
Задача: сформировать артикул (число) из 7и знаков по формуле "максимальный артикул + 1". при этом тип реквизита - строка(7). В базе встречаются значения "945784 ", "98763443".
−127
Запрос = Новый Запрос(
"ВЫБРАТЬ
| РегШК.Владелец КАК Владелец,
| РегШК.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
|ИЗ
| РегистрСведений.Штрихкоды КАК РегШК
|ГДЕ
| РегШК.Штрихкод = &Штрихкод");
Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
РезультатЗапроса = Запрос.Выполнить();
//Николай
Если РезультатЗапроса.Пустой() Тогда
Штрихкод=Сред(Штрихкод,7,6);
Запрос = Новый Запрос(
"ВЫБРАТЬ
| РегШК.Владелец КАК Владелец,
| РегШК.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
|ИЗ
| РегистрСведений.Штрихкоды КАК РегШК
|ГДЕ
| РегШК.Штрихкод = &Штрихкод");
Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
РезультатЗапроса = Запрос.Выполнить();
КонецЕсли;
//Николай
Вот как надо выполнять тот же запрос, но с другим параметром!
−133
Процедура БазоваяПриИзменении(Элемент)
Если ЭтаФорма.ЕдОтчетов = Истина Тогда
ЭтаФорма.ВДаллах = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
Иначе
ЭтаФорма.ВДаллах = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.Ед_храненияОст = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ВДаллахПриИзменении(Элемент)
Если ЭтаФорма.ВДаллах = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.Ед_храненияОст = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура Ед_храненияОстПриИзменении(Элемент)
Если ЭтаФорма.Ед_храненияОст = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.ВДаллах = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.ВДаллах = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ВРубляхПриИзменении(Элемент)
Если ЭтаФорма.ВРублях = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
ЭтаФорма.ВДаллах = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.ВДаллах = Ложь;
КонецЕсли;
КонецПроцедуры
Замечательная реализация радиобаттонов через флажки
−121
Док.н212=ТекЛист.Cells(х,2).Text;
Док.н213=ТекЛист.Cells(х,3).Text;
Док.н214=ТекЛист.Cells(х,4).Text;
Док.н215=ТекЛист.Cells(х,5).Text;;
Док.н216=ТекЛист.Cells(х,6).Text;
Док.н217=ТекЛист.Cells(х,7).Text;;
Док.н218=ТекЛист.Cells(х,8).Text;
Док.н219=ТекЛист.Cells(х,9).Text;
Док.н220=ТекЛист.Cells(х,10).Text;
Док.н221=ТекЛист.Cells(х,11).Text;
Док.н222=ТекЛист.Cells(х,12).Text;
Док.н223=ТекЛист.Cells(х,13).Text;
Док.н224=ТекЛист.Cells(х,14).Text;
Док.н225=ТекЛист.Cells(х,15).Text;
Док.н226=ТекЛист.Cells(х,16).Text;
Док.н227=ТекЛист.Cells(х,17).Text;
Док.н228=ТекЛист.Cells(х,18).Text;
Док.н229=ТекЛист.Cells(х,19).Text;
Док.н230=ТекЛист.Cells(х,20).Text;
Док.н231=ТекЛист.Cells(х,21).Text;
Док.н232=ТекЛист.Cells(х,22).Text;
Док.н233=ТекЛист.Cells(х,23).Text;
Док.н234=ТекЛист.Cells(х,24).Text;
Док.н235=ТекЛист.Cells(х,25).Text;
Док.н236=ТекЛист.Cells(х,26).Text;
Док.н237=ТекЛист.Cells(х,27).Text;
Док.н238=ТекЛист.Cells(х,28).Text;
Док.н239=ТекЛист.Cells(х,29).Text;
Док.н240=ТекЛист.Cells(х,30).Text;
Док.н241=ТекЛист.Cells(х,31).Text;
Док.н242=ТекЛист.Cells(х,32).Text;
Док.н243=ТекЛист.Cells(х,33).Text;
Док.н244=ТекЛист.Cells(х,34).Text;
Док.н245=ТекЛист.Cells(х,35).Text;
Док.н246=ТекЛист.Cells(х,36).Text;
Док.н247=ТекЛист.Cells(х,37).Text;
Док.н248=ТекЛист.Cells(х,38).Text;
Док.н249=ТекЛист.Cells(х,39).Text;
Док.н250=ТекЛист.Cells(х,40).Text;
Док.н251=ТекЛист.Cells(х,41).Text;
Док.н252=ТекЛист.Cells(х,42).Text;
Док.н253=ТекЛист.Cells(х,43).Text;
Док.н254=ТекЛист.Cells(х,44).Text;
Док.н255=ТекЛист.Cells(х,45).Text;
Док.н256=ТекЛист.Cells(х,46).Text;
Док.н257=ТекЛист.Cells(х,47).Text;
Док.н258=ТекЛист.Cells(х,48).Text;
Док.н259=ТекЛист.Cells(х,49).Text;
Док.н260=ТекЛист.Cells(х,50).Text;
Док.н261=ТекЛист.Cells(х,51).Text;
Док.н262=ТекЛист.Cells(х,52).Text;
Док.н263=ТекЛист.Cells(х,53).Text;
Док.н264=ТекЛист.Cells(х,54).Text;
Док.н265=ТекЛист.Cells(х,55).Text;
Док.н266=ТекЛист.Cells(х,56).Text;
Док.н267=ТекЛист.Cells(х,57).Text;
Док.н268=ТекЛист.Cells(х,58).Text;
Док.н269=ТекЛист.Cells(х,59).Text;
// ...
// и так далее все реквизиты
Тот же программер с поиском даты заполняет реквизиты документа.
−127
Каталог=СокрЛП(ИмяКаталога);
Цифры="0123456789";
Д=ТекущаяДата();
ДД="";
Стр=Каталог;
х=Найти(Стр,".");
Если х>0 Тогда
Символ1=Сред(Стр,х-2,1);
Если Найти(Цифры,Символ1)>0 Тогда
ДД=Символ1;
КонецЕсли;
Символ2=Сред(Стр,х-1,1);
Если Найти(Цифры,Символ2)>0 Тогда
ДД=ДД+Символ2+".";
КонецЕсли;
Стр=Сред(Стр,х+1);
КонецЕсли;
х=Найти(Стр,".");
Если х>0 Тогда
Символ1=Сред(Стр,х-2,1);
Если Найти(Цифры,Символ1)>0 Тогда
ДД=ДД+Символ1;
КонецЕсли;
Символ2=Сред(Стр,х-1,1);
Если Найти(Цифры,Символ2)>0 Тогда
ДД=ДД+Символ2+".";
КонецЕсли;
Стр=Сред(Стр,х+1);
Символ1=Лев(Стр,1);
Если Найти(Цифры,Символ1)>0 Тогда
ДД=ДД+Символ1;
КонецЕсли;
Символ2=Сред(Стр,2,1);
Если Найти(Цифры,Символ2)>0 Тогда
ДД=ДД+Символ2;
КонецЕсли;
КонецЕсли;
Если СтрДлина(ДД)=8 Тогда
Д=Дата(ДД);
Сообщить(Д);
КонецЕсли;
Вот нашел на одном из форумов. Программер ищет дату.
−127
&НаКлиенте
Процедура ПриЗакрытии()
ПроверитьНаОткрытие()
КонецПроцедуры
&НаСервере
Процедура ПроверитьНаОткрытие()
Если Объект.Исполнитель =ПараметрыСеанса.ТекущийПользователь() И Не Объект.Просмотрено = Истина Тогда
Задача = Объект.Ссылка.ПолучитьОбъект();
Задача.Просмотрено = Истина;
Задача.Записать();
КонецЕсли;
КонецПроцедуры
−129
//Тут был код
//!Проверки на корректность данных.
ИначеЕсли (Строка(Лист.Cells(Счетчик,8).value) = "") ИЛИ (Строка(Лист.Cells(Счетчик,8).value) = "") ИЛИ ((Лист.Cells(Счетчик,8).value) = 0) ИЛИ ((Лист.Cells(Счетчик,8).value) = 0) Тогда
Сообщить("У номенклатуры в строке №"+Счетчик+" не хватает данных по ценам! Позиция не добавлена!", СтатусСообщения.Важное);
ИначеЕсли ((Лист.Cells(Счетчик,8).value) < 0) ИЛИ ((Лист.Cells(Счетчик,8).value) < 0) Тогда
Сообщить("У номенклатуры в строке №"+Счетчик+" отрицательная цена! Позиция не добавлена!", СтатусСообщения.Важное);
Иначе
Мас.Добавить(Строка(Лист.Cells(Счетчик, 1).value));
ЭлементСправочника = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Строка(Лист.Cells(Счетчик, 1).value));
//Там дальше код
Фрагмент обработки найден в конфиге клиента. До фрагмента - открытие файла excel. После - распихивание данных с него по регистрам. Гениальная проверка на корректность гениальна.
−121
ВнутреннийКодДокумента=Лев(ФайлКаталога.Имя,Найти(ФайлКаталога.Имя,"_")-1);
ВнутреннийКодДокумента=Формат(Число(ВнутреннийКодДокумента),"ЧЦ=9;ЧВН=");
ВнутреннийКодДокумента=СтрЗаменить(ВнутреннийКодДокумента," ","");
СсылкаНаВходящийДокумент=Справочники.ВходящиеДокументы.НайтиПоКоду(ВнутреннийКодДокумента);
получает имя файла например 122341_20101207201000.pdf и ищет по коду в справочники с лидирующими нулями, если кто то может предложить лучше предложение, то я буду только рад)