-
−119
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Процедура ДействияФормыДействие5(Кнопка)
ТекущиеДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ТекПометкаУдаления = ТекущиеДанные.Ссылка.ПометкаУдаления;
КонтрагентОбъект = ТекущиеДанные.Ссылка.ПолучитьОбъект();
КонтрагентОбъект.ПометкаУдаления = Не ТекПометкаУдаления;
Попытка
КонтрагентОбъект.записать();
Исключение
Сообщить("Не удалось " + ?(ТекПометкаУдаления, "снять", "установить") + " пометку удаления.");
КонецПопытки;
КонецПроцедуры
На форме списка справочника "Контрагенты" добавлена кнопка со значком "непосредственное удаление". А это её обработчик.
НАХРЕНА???
doom2good,
20 Февраля 2015
-
−120
- 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
- 29
- 30
- 31
- 32
- 33
- 34
Функция Счет(УсловныйКодСчета, СоответствиеСчетов = Неопределено) Экспорт
ПС = ПланыСчетов.Хозрасчетный;
Результат = ПС.ПустаяСсылка();
Если УсловныйКодСчета = "01" Тогда
Результат = ПС.ОсновныеСредства;
ИНачеЕсли УсловныйКодСчета = "01.01" Тогда
Результат = ПС.ОСвОрганизации;
ИначеЕсли УсловныйКодСчета = "01.08" Тогда
Результат = ПС.ОСБезГосРегистрации;
ИначеЕсли УсловныйКодСчета = "01.09" Тогда
Результат = ПС.ВыбытиеОС;
ИначеЕсли УсловныйКодСчета = "02" Тогда
Результат = ПС.АмортизацияОсновныхСредств;
//Далее идет подобный треш более чем на 500 строк
ИначеЕсли УсловныйКодСчета = "008" Тогда
Результат = ПС.ОбеспеченияОбязательствПолученные;
ИначеЕсли УсловныйКодСчета = "009" Тогда
Результат = ПС.ОбеспеченияОбязательствВыданные;
ИначеЕсли УсловныйКодСчета = "011" Тогда
Результат = ПС.ОсновныеСредстваСданныеВАренду;
Иначе
ОписаниеОшибки = НСтр("ru='Не определен счет с условным кодом %1 в соответствии счетов'");
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеОшибки, УсловныйКодСчета);
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Возврат Результат;
КонецФункции
//СоответствиеСчетов так нигде и не используется :(
Типовая Бухгалтерия КОРП 3.0, модуль ЗаполнениеБухгалтерскойОтчетностиИтоги
planaric,
07 Февраля 2015
-
−120
- 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
//определяем сумму начисленной амортизации+ремонтов на заказы документом "РаспределениеАмортизацииНаЗаказы"
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СчетУчета КАК СчетУчета,
| НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Заказ,
| НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СтоимостьПриход КАК СтоимостьПриход,
| НАЧАЛОПЕРИОДА(НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Период, МЕСЯЦ) КАК Период,
| НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК НезавершенноеПроизводствоБухгалтерскийУчетОбороты
|ГДЕ
| (НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Регистратор ССЫЛКА Документ.РаспределениеАмортизацииНаЗаказы
| ИЛИ НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Регистратор = &Корректировка)
| И НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СчетУчета = &СчетУчета
|ИТОГИ
| СУММА(СтоимостьПриход)
|ПО
| ОБЩИЕ";
Запрос.УстановитьПараметр("ДатаНач",НачалоМесяца(ДатаНач));
Запрос.УстановитьПараметр("ДатаКон",КонецМесяца(ДатаКон));
Запрос.УстановитьПараметр("СчетУчета", ПланыСчетов.Хозрасчетный.НайтиПоКоду("231"));
Запрос.УстановитьПараметр("Корректировка", Документы.ОперацияБух.НайтиПоНомеру("00000056",Дата(2011,05,01)));
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
СуммаНачисления = Выборка.СтоимостьПриход;
Есть специальная супер секретная бухгалтерская операция которую нужно исключить )))
yuriybilous,
31 Января 2015
-
−118
- 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
Если Сумма<=0 тогда
НС = Док.СуммыДолга.Добавить();
НС.ВидЗадолженности = Перечисления.ВидыЗадолженности.Кредиторская;
НС.ДоговорКонтрагента = ПолучитьДоговор(Клиент,Док.ВалютаДокумента);
НС.КурсВзаиморасчетов = Док.КурсДокумента;
НС.КратностьВзаиморасчетов=Док.КратностьДокумента;
НС.Сумма = -Сумма;
НС.СуммаРегл = НС.Сумма*НС.КурсВзаиморасчетов/НС.КратностьВзаиморасчетов;
НС.СчетУчетаАвансов = СчетКонтрагента;
НС.СчетУчетаРасчетов = СчетКонтрагента;
Иначе
НС = Док.СуммыДолга.Добавить();
НС.ВидЗадолженности = Перечисления.ВидыЗадолженности.Дебиторская;
НС.ДоговорКонтрагента = ПолучитьДоговор(Клиент,Док.ВалютаДокумента);
НС.КурсВзаиморасчетов = Док.КурсДокумента;
НС.КратностьВзаиморасчетов=Док.КратностьДокумента;
НС.Сумма = Сумма;
НС.СуммаРегл = НС.Сумма*НС.КурсВзаиморасчетов/НС.КратностьВзаиморасчетов;
НС.СчетУчетаАвансов = СчетКонтрагента;
НС.СчетУчетаРасчетов = СчетКонтрагента;
КонецЕсли;
Код исправный, но... любит один наш программер "чтоб побольше строк"... а если добавить дополнительные отступы ("для удобства прочтения"), то будет казаться, что программа невообразимо длинная и сложная
dsfix,
30 Января 2015
-
−127
- 1
- 2
- 3
- 4
- 5
//200114
//ОбластьКонОстаткиДоговор.Параметры.ПеременныйДоговор = ВыборкаДоговор.Договор; //Убери рем когда договор опять нужен будет
//210014
//ОбластьКонОстаткиДоговор.Параметры.ПеенныйДоговор = ВыборкаДоговор.Договор; //Убери рем когда договор опять нужен будет
Пенный договор вновь вступил в силу..
gStill,
27 Января 2015
-
−125
- 1
КоличествоСтраницПриПечати = Цел(ТабличныйДокумент.ВысотаТаблицы / 40.417) + 1 + 1;
Разработчик 1С вооруженный линейкой опасен в 1+1 раз.
safer_bwd,
26 Января 2015
-
−121
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
Функция ПереформатироватьДату(Дата)
Год = Формат(Дата, "ДФ=гггг");
Месяц = Формат(Дата, "ДФ=ММ");
День = Формат(Дата, "ДФ=дд");
Час = Формат(Дата, "ДФ=Ч") ;
Минута = Формат(Дата, "ДФ=мм");
Секунда = Формат(Дата, "ДФ=сс");
ПолученнаяДата = Год+Месяц+День+Час+Минута+Секунда;
Возврат ПолученнаяДата;
КонецФункции
Творчечство стажера. Надо было в скл -запрос подсунуть дату в виде строки. Должно быть Формат(Дата, "ДФ=yyyyMMddhhmmss"). Да и отдельной функции не надо
delph1ct,
26 Января 2015
-
−125
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
ВЫБОР
КОГДА &ПоказыватьВсеПотребности
ТОГДА ВЫБОР
КОГДА ОсновнаяТаблица.КоличествоПлана <= 0
ТОГДА ОсновнаяТаблица.КоличествоПлана
ИНАЧЕ ОсновнаяТаблица.КоличествоПлана
КОНЕЦ
ИНАЧЕ ОсновнаяТаблица.КоличествоПлана
КОНЕЦ КАК КоличествоПлана
плана было больше количество, это уж точно
dawgcha,
13 Января 2015
-
−126
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
Если ЗаполненАдрес=0 Тогда
Если ПустаяСтрока(Запрос.ЭлПочта)=0 Тогда
Продолжить;
Иначе
ТЗ.НоваяСтрока();
ТЗ.Код = Запрос.Контрагенты.Код;
ТЗ.Контрагент = Запрос.Контрагенты.Наименование;
ТЗ.ЭлАдрес = Запрос.ЭлПочта;
КонецЕсли;
иначе
Если ПустаяСтрока(Запрос.ЭлПочта)=1 Тогда
Продолжить;
Иначе
ТЗ.НоваяСтрока();
ТЗ.Код = Запрос.Контрагенты.Код;
ТЗ.Контрагент = Запрос.Контрагенты.Наименование;
ТЗ.ЭлАдрес = Запрос.ЭлПочта;
КонецЕсли;
Конецесли;
ЗаполненАдрес - это чекбокс.
Если сократить код, то получится:
Если ЗаполненАдрес<>ПустаяСтрока(Запрос.ЭлПоч та) Тогда
ТЗ.НоваяСтрока();
ТЗ.Код = Запрос.Контрагенты.Код;
ТЗ.Контрагент = Запрос.Контрагенты.Наименование;
ТЗ.ЭлАдрес = Запрос.ЭлПочта;
КонецЕсли;
noncode,
12 Января 2015
-
−124
- 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
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
//часть текста запроса
|ИЗ
| ЭтапыОплатыИсходник КАК ЭтапыОплаты
|//ТекстОтбора
|{ГДЕ
.................
//Добавляем поля если используется отбор
ТекстОтбора="ГДЕ ";
ТекстОтбора=ТекстОтбора+" ИСТИНА";
НомерПеременнойОтбора=1;
Для каждого СтрокаТекущегоОтбора Из ПостроительОтчета.Отбор Цикл
if НЕ СтрокаТекущегоОтбора.Использование then
continue;
endif;
СложноеИмяПоля=ПолучитьИмяПоляБезТочек(СтрокаТекущегоОтбора.ПутьКДанным);
Если ПостроительОтчета.Отбор.Найти(СложноеИмяПоля)=Неопределено Тогда
Если СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Больше Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" > &ПеременнаяОтбора"+НомерПеременнойОтбора;
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.БольшеИлиРавно Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" >= &ПеременнаяОтбора"+НомерПеременнойОтбора;
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии или
СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСписке или
СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСпискеПоИерархии Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Меньше Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" < &ПеременнаяОтбора"+НомерПеременнойОтбора;
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.МеньшеИлиРавно Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <= &ПеременнаяОтбора"+НомерПеременнойОтбора;
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСписке или
СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСпискеПоИерархии Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВИерархии Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеРавно Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <> &ПеременнаяОтбора"+НомерПеременнойОтбора;
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Равно Тогда
ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" = &ПеременнаяОтбора"+НомерПеременнойОтбора;
Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
НомерПеременнойОтбора=НомерПеременнойОтбора+1
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если НомерПеременнойОтбора>1 Тогда
Запрос.Текст=СтрЗаменить(Запрос.Текст,"//ТекстОтбора",ТекстОтбора);
КонецЕсли;
При этом при всем, в отчете используется 2 построителя ( на одном не смог построить , одного видимо было было мало для стратегии заложенной в голове:) ) + между ними используется куча запросов , в которых выгружаются таблицы (РезультатЗапроса.Выполнить().Выгрузить( )) и передаются в следующие запросы как параметры.
От себя добавлю: Добавлял элементарные вещи, чтобы вывести пару дополнительных колонок - убить 1 час , тоже самое, что ничего не сделать..... Да и к тому же отчет рисуется через "ТабДок.Присоеденить".
Ba_Ka,
22 Декабря 2014