|
v7: Разъясните код запроса | ☑ | ||
---|---|---|---|---|
0
Kapystin
13.11.14
✎
18:48
|
......
|Функция Покуп = Сумма(1) Когда (Док.Вид() = ""СчетФактура""); |Функция Пост = Сумма(-1) Когда (Док.Вид() = ""ЗаписьКнигиПокупок""); ..... УзелПодч.УстановитьАтрибут("Покупатель", ?(Запрос.Покуп = 0, 0, 1)); УзелПодч.УстановитьАтрибут("Поставщик", ?(Запрос.Пост = 0, 0, 1)); не понимаю сумма(1) и сумма(-1) |
|||
1
ГдеСобака Зарыта
13.11.14
✎
18:52
|
Видимо даст количество счетов фактур и записей кн продаж в запросе
|
|||
2
spero
13.11.14
✎
18:53
|
Ну так автор захотел. Мог бы Сумма(1) и Сумма(1) написать. Без разницы.
|
|||
3
Kapystin
13.11.14
✎
18:55
|
а как отработает
УзелПодч.УстановитьАтрибут("Покупатель", ?(Запрос.Покуп = 0, 0, 1)); УзелПодч.УстановитьАтрибут("Поставщик", ?(Запрос.Пост = 0, 0, 1)); . не могу разобраться. |
|||
4
2S
13.11.14
✎
18:56
|
Возможно суммирует для определения сф, по которым нет записей кп. Если так, у вас бардак в учете )
|
|||
5
2S
13.11.14
✎
18:57
|
Если Покуп + Пост = 0 Тогда
все ок КонецЕсли; )) |
|||
6
Kapystin
13.11.14
✎
18:59
|
Процедура Сформировать()
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1 Тогда Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll") <> 1 Тогда Предупреждение("Компонента v7plus.dll не найдена!"); возврат; КонецЕсли; КонецЕсли; Анализатор = СоздатьОбъект("AddIn.XMLParser"); Пока ПустоеЗначение(КаталогОбмена) = 1 Цикл ИмяКаталога = КаталогОбмена; Если ФС.ВыбратьКаталог(ИмяКаталога, "Выберите папку в которую хотите сохранить файл выгрузки")=1 тогда КаталогОбмена = ИмяКаталога; КонецЕСли; КонецЦикла; Документ = Анализатор.СоздатьДокумент(); Выгрузка = Документ.СоздатьПодчиненныйЭлемент("Выгрузка"); Час = ""; Минута = ""; Секунда = ""; ТекущееВремя(Час, Минута, Секунда); ИмяФайлаОбмена = "KONTR_" +Строка(ДатаЧисло(ТекущаяДата()))+"_" +Строка(ДатаМесяц(ТекущаяДата()))+"_" +Строка(ДатаГод(ТекущаяДата()))+"_" +Строка(Час)+"_"+Строка(Минута)+"_" +Строка(Секунда)+".xml"; ФайлОбмена = КаталогОбмена+"\"+ИмяФайлаОбмена; Выгрузка.УстановитьАтрибут("Вид_документов", "СФ"); //Выгрузка.УстановитьАтрибут("Идентификатор_файла", ИдентификаторФайла); Выгрузка.УстановитьАтрибут("Дата_начала", НачДата); Выгрузка.УстановитьАтрибут("Дата_окончания", КонДата); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период с НачДата по КонДата; |ОбрабатыватьДокументы Проведенные; |Док = Документ.СчетФактура.ТекущийДокумент, | Документ.ЗаписьКнигиПокупок.ТекущийДокумент; |Контрагент = Документ.СчетФактура.Контрагент, | Документ.ЗаписьКнигиПокупок.Контрагент; |Функция Покуп = Сумма(1) Когда (Док.Вид() = ""СчетФактура""); |Функция Пост = Сумма(-1) Когда (Док.Вид() = ""ЗаписьКнигиПокупок""); |Группировка Контрагент;"; //|Группировка Док;"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Предупреждение("Запрос не выполнен!"); СтатусВозврата(0); Возврат; КонецЕсли; ТЗ = ""; Запрос.Выгрузить(ТЗ); ТЗ.ВыбратьСтроку(); Узел0 = Выгрузка.СоздатьПодчиненныйЭлемент("Справочники"); Узел1 = Узел0.СоздатьПодчиненныйЭлемент("Справочник"); Узел1.УстановитьАтрибут("Вид_справочника", "Контрагенты"); Договоры = СоздатьОбъект("Справочник.Договоры"); Счетчик = 0; Пока Запрос.Группировка("Контрагент") = 1 Цикл Счетчик = Счетчик + 1; Сообщить("Покуп__"+Запрос.Покуп); Сообщить("Пост___"+Запрос.Пост); ЭтоГруппа = Запрос.Контрагент.ЭтоГруппа(); УзелПодч = Узел1.СоздатьПодчиненныйЭлемент("Контрагент"); УзелПодч = Узел1.СоздатьПодчиненныйЭлемент("Контрагент"); УзелПодч.УстановитьАтрибут("Код", Запрос.Контрагент.Код); УзелПодч.УстановитьАтрибут("Наименование", Запрос.Контрагент.Наименование); УзелПодч.УстановитьАтрибут("КодРодителя", Запрос.Контрагент.Родитель.Код); УзелПодч.УстановитьАтрибут("ЭтоГруппа", ЭтоГруппа); Если ЭтоГруппа = 1 Тогда Продолжить; КонецЕсли; УзелПодч.УстановитьАтрибут("Покупатель", ?(Запрос.Покуп = 0, 0, 1)); УзелПодч.УстановитьАтрибут("Поставщик", ?(Запрос.Пост = 0, 0, 1)); // УзелПодч.УстановитьАтрибут("ЮрЛицо", ?(Запрос.Контрагент.ЮрФизЛицо.Вид() = "ЮрЛица", 1, 0)); // УзелПодч.УстановитьАтрибут("ПолнНаименование", СокрЛП(Запрос.Контрагент.ЮрФизЛицо.ПолнНаименование)); // УзелПодч.УстановитьАтрибут("ЮрАдрес", СокрЛП(Запрос.Контрагент.ЮрФизЛицо.ЮрАдрес)); // УзелПодч.УстановитьАтрибут("ФактАдрес", СокрЛП(Запрос.Контрагент.ФактАдрес)); // УзелПодч.УстановитьАтрибут("ИНН_КПП", Запрос.Контрагент.ЮрФизЛицо.ИНН); // УзелПодч.УстановитьАтрибут("ОКПО", ?(Запрос.Контрагент.ЮрФизЛицо.Вид() = "ЮрЛица", Запрос.Контрагент.ЮрФизЛицо.ОКПО, "")); // УзелПодч.УстановитьАтрибут("Телефоны", Запрос.Контрагент.ЮрФизЛицо.Телефоны); КонецЦикла; Документ.Записать(ФайлОбмена); // ОткрытьФайл(ФайлОбмена); ЗапуститьПриложение("explorer "+ Строка(ФайлОбмена)) // Сообщить("Файл записан!"); КонецПроцедуры |
|||
7
ГдеСобака Зарыта
13.11.14
✎
19:02
|
Ну просто определяет роль контрагента. Кто он Покупатель или Поставщик. Соответственно если есть хоть одна СФ в запросе, значит это покупатель, Если хоть одна запись кн покупок, то поставщик
|
|||
8
Kapystin
13.11.14
✎
19:06
|
итог я понимаю, не догоняю с этими сумма(1) и сумма(-1)
они попадают сюда УзелПодч.УстановитьАтрибут("Покупатель", ?(Запрос.Покуп = 0, 0, 1)); УзелПодч.УстановитьАтрибут("Поставщик", ?(Запрос.Пост = 0, 0, 1)); и каким образом здесь отработает сумма(-1). запутался |
|||
9
Kapystin
13.11.14
✎
19:06
|
ни могу двигаться дальше не разобравшись с азами.
|
|||
10
Kapystin
13.11.14
✎
19:16
|
всем спасибо, разобрался
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |