Получить начисленные суммы по документу НачислениеЗаработной платы Код 1C v 8.х // Получим суммы начисленные по ФизЛицу документом НачислениеЗарплатыРаботникамОрганизаций
// (отбор по Документ.НачислениеЗарплатыРаботникамОрганизаций)
Запрос=новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
| ВзаиморасчетыСРаботникамиОрганизаций.Период,
| ВзаиморасчетыСРаботникамиОрганизаций.Регистратор,
| ВзаиморасчетыСРаботникамиОрганизаций.НомерСтроки,
| ВзаиморасчетыСРаботникамиОрганизаций.Активность,
| ВзаиморасчетыСРаботникамиОрганизаций.ВидДвижения,
| ВзаиморасчетыСРаботникамиОрганизаций.Физлицо,
| ВзаиморасчетыСРаботникамиОрганизаций.Организация,
| ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов,
| ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов,
| ВзаиморасчетыСРаботникамиОрганизаций.ВидРасчета,
| ВзаиморасчетыСРаботникамиОрганизаций.СуммаВUSD
|ИЗ
| РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций
|ГДЕ
| ВзаиморасчетыСРаботникамиОрганизаций.Физлицо = &Физлицо
| И ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов = &ПериодВзаиморасчетов
| И ВзаиморасчетыСРаботникамиОрганизаций.Регистратор ССЫЛКА Документ.НачислениеЗарплатыРаботникамОрганизаций
|
|";
Запрос.УстановитьПараметр("ПериодВзаиморасчетов",Дата("01.09.2009 0:00:00"));
Запрос.УстановитьПараметр("Физлицо",Справочники.ФизическиеЛица.НайтиПоКоду("00000054"));
Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
Пока Результат.Следующий() Цикл
// обработка результата
КонецЦикла;
//Пример 2
Запрос=новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
| ВзаиморасчетыСРаботникамиОрганизаций.Физлицо КАК Физлицо,
| ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов КАК ПериодВзаиморасчетов,
| СУММА(ВЫБОР
| КОГДА ВзаиморасчетыСРаботникамиОрганизаций.ВидРасчета В (&VidUSD)
| ТОГДА ВзаиморасчетыСРаботникамиОрганизаций.СуммаВUSD
| ИНАЧЕ 0
| КОНЕЦ) КАК USD,
| СУММА(ВЫБОР
| КОГДА (НЕ ВзаиморасчетыСРаботникамиОрганизаций.ВидРасчета В (&VidUSD))
| ТОГДА ВЫБОР
| КОГДА (НЕ ВзаиморасчетыСРаботникамиОрганизаций.ВидРасчета = НЕОПРЕДЕЛЕНО)
| ИЛИ ВзаиморасчетыСРаботникамиОрганизаций.Регистратор ССЫЛКА Документ.НачислениеОтпускаРаботникамОрганизаций
| ТОГДА ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ) КАК RUB,
| СУММА(ВЫБОР
| КОГДА ВзаиморасчетыСРаботникамиОрганизаций.ВидРасчета = НЕОПРЕДЕЛЕНО
| И ВзаиморасчетыСРаботникамиОрганизаций.Регистратор ССЫЛКА Документ.НачислениеЗарплатыРаботникамОрганизаций
| ТОГДА ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов * -1
| ИНАЧЕ 0
| КОНЕЦ) КАК NDFL
|ИЗ
| РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций
|ГДЕ
| ВзаиморасчетыСРаботникамиОрганизаций.Физлицо = &Физлицо
| И ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов = &ПериодВзаиморасчетов
| И (ВзаиморасчетыСРаботникамиОрганизаций.Регистратор ССЫЛКА Документ.НачислениеЗарплатыРаботникамОрганизаций
| ИЛИ ВзаиморасчетыСРаботникамиОрганизаций.Регистратор ССЫЛКА Документ.НачислениеОтпускаРаботникамОрганизаций)
|
|СГРУППИРОВАТЬ ПО
| ВзаиморасчетыСРаботникамиОрганизаций.Физлицо,
| ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов
|";
Категория:
Запросы Пример присвоения нового номера, при проблемах с нумерацией Пример реализации автоматич. расчета следующего номера, нумерация
Предположим, у документа
Начисление Отпуска слетела нумерация, кто-то влез и ручками исправил номер документа
Самый простой способ исправить ситуацию - найти документ с некорректным номером и изменить в нем номер на правильный.
Или можно перенумеровать воспользовавшись специальными обработками -
https://helpf.pro/files/view/8.html
https://helpf.pro/files/view/11.html
Ну а если найти некорректный документ не удается, а использовать обработки перенумерации нежелательно, тогда:
в модуле документа, у которого слетела нумерация, в процедуре
Код 1C v 7.x Процедура ВводНового(Копирование)
добавить (пример для документа "НачислениеОтпуска" ):
Код 1C v 7.x
//E_Migachev автоматический расчет следующего номера
//Выберем документы в обратном порядке
ДокНачислениеОтпуска = СоздатьОбъект("Документ.НачислениеОтпуска");
ДокНачислениеОтпуска.ОбратныйПорядок(1);
ДокНачислениеОтпуска.ВыбратьДокументы(НачКвартала(РабочаяДата()-15),КонКвартала(РабочаяДата()+27));
ДокНачислениеОтпуска.ПолучитьДокумент();
//Получим последний числовой номер
новномдк=Строка(число(Сред(ДокНачислениеОтпуска.НомерДок,3,7)));
стрдлинаномдк=СтрДлина(Строка(СокрЛП(Сред(ДокНачислениеОтпуска.НомерДок,3,7))));
новномдк=Число(новномдк)+1;
иткол=стрдлинаномдк-СтрДлина(новномдк);
префиксдк="ОТ";
если иткол>0 тогда
для н=1 по иткол цикл
префиксдк=префиксдк+строка(0);
конеццикла;
конецесли;
докном=префиксдк+новномдк;
//Если документ исправление то нужен префикс И
Если Исправление=1 Тогда
знтри=Прав(ДокНачислениеОтпуска.НомерДок,3);
Если Строка(Лев(знтри,1))="И" Тогда
чзнтри=Число(Прав(знтри,2));
чзнтри=чзнтри+1;
Иначе
чзнтри=1;
КонецЕсли;
Если СтрДлина(чзнтри)=1 Тогда
докном=докном+"-И0"+Строка(чзнтри);
Иначе
докном=докном+"-И"+Строка(чзнтри);
КонецЕсли;
КонецЕсли;
//Присвоим новый номер
НомерДок=докном; //E_Migachev автоматич расчет номера
Категория:
1С Общие вопросы - Обычные формы Выборка, перебор документов Код 1C v 8.х // Выборка документов за весь период
Выборка = Документы.НачислениеОтпуска.Выбрать();
Пока Выборка.Следующий() Цикл
//Модуль обработки
КонецЦикла;
// Выборка документов за период с Даты начала по Дата окончания
//Выборка = Документы.РасходнаяНакладная.Выбрать(ДатаНач, ДатаКон);
ВыборкаДокументов = Документы.РасходнаяНакладная.Выбрать(НачалоГода(ТекущаяДата()), КонецГода(ТекущаяДата()));
Пока ВыборкаДокументов.Следующий() Цикл
// Действия с документом - элементом выборки,
// его значение содержится в переменной ВыборкаДокументов
КонецЦикла
//Запросом:
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ. РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Контрагент = &Контрагент
| И
| (РеализацияТоваровУслуг.Номер < 100 | ИЛИ | РеализацияТоваровУслуг.Дата < ДАТАВРЕМЯ(2005, 1, 1))
| И
| РеализацияТоваровУслуг.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)";
Запрос.УстановитьПараметр("Контрагент", ОтбКонтрагент);
Запрос.УстановитьПараметр("Номенклатура", ОтбНоменклатура);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// действия с документом - элементом выборки,
// его значение содержится в переменной Выборка
КонецЦикла;
Категория:
Документы