Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 14:10

Вопрос по созданию выборки документов

Автор wad_str, 27 окт 2011, 09:22

0 Пользователей и 1 гость просматривают эту тему.

wad_str

1С 7.7.025 (типовая релиз 530, переписанная)
Суть вопроса: Необходимо создать выборку документов типа "Счет фактура выданный" с условием отбора во виду операции.
текст модуля
ДокСф = СоздатьОбъект("Документ.СчетФактура");
ДокСф.ВыбратьДокументы(НачМесяца(ДатаДок),КонМесяца(ДатаДок));
Пока (ДокСф.ПолучитьДокумент() = 1) Цикл
   Если ДокСф.ВидОперации = "Реализация" Тогда
   Сообщить(ДокСф);
Иначе
   Возврат;
КонецЕсли;
КонецЦикла;

Если не ставить условие по Если, то документы выбираются за указанный период, а при подключении условия -не работает, где ошибка.
Опыт пока небольшой, только учусь на практике.

sergejK74

Если ДокСф.ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.Реализация Тогда
Кнопочка Спасибо - слева!

wad_str

Спасибо, всё понял. Работает. Теперь задача поместить выбранные документы в документ "Формирование записей книги покупок (для восстановления НДС с возвратов от покупателя.... пока -никак... как заполнить табличную часть данными из выбранного документа????

sergejK74


// в начале модуля
д = СоздатьОбъект("Документ.ЗаписиКнигиПокупок");
д.Новый(); // или найти старый
д.НомерДок = ;
д.ДатаДок = ;
д.Комментарий = ;

//в цикле
// Цикл по строкам
д.НоваяСтрока();
д.ДатаНомерСчетаФактуры = ;
д.СчетФактура = ;
д.Оплата = ;
д.Приход = ;
д.Контрагент = ;
д.СтранаГТД = ;
д.Всего = ;
д.БезНДС20 = ;
д.НДС20 = ;
д.БезНДС10 = ;
д.НДС10 = ;
д.НДС0 = ;
д.Освобождаемые = ;
д.СубСчет19 = ;
д.Аванс = ;
д.Авто = ;
д.ТипЗаписи = ;
д.ЗаписьДопЛиста = ;
д.ДатаДопЛиста = ;
//КонецЦикла;
//после цикла
д.Записать();
Кнопочка Спасибо - слева!

wad_str

Спасибо, но не всё понял. Пытаюсь добавить документы в модуле существующего в конфигурации документа "ЗаписиКнигиПокупок" в конце модуля сначала отобрать нужные по условию, затем заполнить табличную часть документа  "ЗаписиКнигиПокупок", и сформировать проводки по Дт счетов ЗПК соответственно по значениям НДС.

Текст модуля:ДокСф = СоздатьОбъект("Документ.СчетФактура");
ДокСф.ВыбратьДокументы(НачМесяца(ДатаДок),КонМесяца(ДатаДок));
Пока (ДокСф.ПолучитьДокумент() = 1) Цикл
   Если ДокСф.Выбран()=1 Тогда
      ВидОперации= ДокСф.ПолучитьАтрибут("ВидОперации");
   Если ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.ВозвратОтПокупателя Тогда
   Сообщить(ДокСф);
Иначе
   Продолжить;
КонецЕсли;
КонецЕсли;
ДокСф.ВыбратьСтроки();
Пока ДокСф.ПолучитьСтроку()=1 Цикл
// а вот здесь что нужно описать???? Простите чайника.....
КонецЦикла;


Если (ДокСФ.Вид()="СчетФактура") Тогда
       Оплата             = ДокСФ.ДокументОприходования;
      Приход             = ДокСФ.ДокументОприходования;
   Иначе
      Оплата            = ДокСФ.ТекущийДокумент();
      Приход             = ДокСФ.ТекущийДокумент();
   КонецЕсли;
   Контрагент             = ДокСФ.контрагент;
   ТипЗаписи            = Перечисление.ТипыЗаписейКнигиПокупок.ВозвратОтПокупателя;
   Всего               = 0;
   
   ПроводкиДокумента = СоздатьОбъект("Операция");
   ПроводкиДокумента.НайтиОперацию(ДокСФ);
   ПроводкиДокумента.ВыбратьПроводки();
   Пока ПроводкиДокумента.ПолучитьПроводку()=1 Цикл
      Если (ПустоеЗначение(Строка(ПроводкиДокумента.Кредит.Счет.Код)) = 0)
      и (Найти("ЗПК.20.Б,ЗПК.20.Н,ЗПК.10.Б,ЗПК.10.Н,ЗПК.0,ЗПК.БН",Строка(ПроводкиДокумента.Кредит.Счет.Код)) > 0) Тогда
         
         Если ПроводкиДокумента.НомерПроводки() = ПроводкиДокумента.КоличествоПроводок() Тогда
            ЗачестьСумма = Зачесть - Всего;
         Иначе
            ЗачестьСумма = К*ПроводкиДокумента.Сумма;
         КонецЕсли;
         
         Всего          = Всего + ЗачестьСумма;   
         
         Если ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.20.Б") Тогда
            БезНДС20      = ЗачестьСумма;
         ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.20.Н") Тогда
            НДС20         = ЗачестьСумма;   
         ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.10.Б") Тогда
            БезНДС10      = ЗачестьСумма;       
         ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.10.Н") Тогда
            НДС10         = ЗачестьСумма;       
         ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.0") Тогда
            НДС0         = ЗачестьСумма;       
         ИначеЕсли ПроводкиДокумента.Кредит.Счет = СчетПоКоду("ЗПК.БН") Тогда
            Освобождаемые   = ЗачестьСумма;       
         КонецЕсли;
      КонецЕсли;
   КонецЦикла;

   Если Всего = 0 Тогда
       УдалитьСтроку();
      Возврат;
   КонецЕсли;
КонецЦикла; 

sergejK74

Если смотреть в код, то все данные берутся из проводок.
поэтому ДокСф.ВыбратьСтроки();
Пока ДокСф.ПолучитьСтроку()=1 Цикл
// а вот здесь что нужно описать???? Простите чайника.....
КонецЦикла;
здесь не нужно.
Кнопочка Спасибо - слева!

wad_str

понятно, это я уберу, но никак не связывается в кучу счфактура с записями книги покупок......  мозга видимо не хватает....

wad_str

привожу полный текст модуля форма документа записи книги покупок где переделывал стоят ремарки вад и дата ошибок нет всё проходит, но искомый счет фактура выданный с видом операции ВозвратОтПокупателя в доке не появляется.... Вывих мозга я себе обеспечил......


Модуль во вложении (текст файл)


sergejK74

Добавлять надо в Процедуру Заполнить(), а ты куда то в конец вставил
Кнопочка Спасибо - слева!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск