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

Счет-фактура добавить сразу несколько документов-основания

Автор alexei1800, 09 сен 2016, 11:02

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

alexei1800

Подскажите опять туплю
Докнов=Документсчетфактура.ДокументыОснования.Добавить();
докнов.ДокументОснование=ВыборкаДетальныеЗаписи.ссылкадок;
но нужно добавить не один документ основания, а несколько
нужно добавить 4 документа основания ВыборкаДетальныеЗаписи.ссылкадок
ВыборкаДетальныеЗаписи2.ссылкадок ВыборкаДетальныеЗаписи3.ссылкадок ВыборкаДетальныеЗаписи4.ссылкадок, как их добавить
если делаешь так документыоснования = ВыборкаДетальныеЗаписи.ссылкадок + ВыборкаДетальныеЗаписи2.ссылкадок; то выводит ошибку преобравзование к значению числу не выполнено


alex0402

Нельзя в реквизит типа Ссылка поместить больше одной ссфлки
Спасибо за Сказать спасибо

alexei1800

Цитата: alex0402 от 09 сен 2016, 11:25
Нельзя в реквизит типа Ссылка поместить больше одной ссфлки
там нет там не реквизит типо ссылка, я имею ввиду табличную часть документоснования, а там документ основание  тип у него состовной и когда вручную делаешь счет-фактуру, можно в документ-основания добавлять несколько документов основания

alex0402


Докнов=Документсчетфактура.ДокументыОснования.Добавить();
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка1;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка2;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка3;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка4;
Спасибо за Сказать спасибо

cska-fanat-kz

Докнов=Документсчетфактура.ДокументыОснования.Добавить();
докнов.ДокументОснование=ВыборкаДетальныеЗаписи.ссылкадок;
Докнов=Документсчетфактура.ДокументыОснования.Добавить();
докнов.ДокументОснование=ВыборкаДетальныеЗаписи2.ссылкадок;
Докнов=Документсчетфактура.ДокументыОснования.Добавить();
докнов.ДокументОснование=ВыборкаДетальныеЗаписи3.ссылкадок;
Докнов=Документсчетфактура.ДокументыОснования.Добавить();
докнов.ДокументОснование=ВыборкаДетальныеЗаписи4.ссылкадок;
...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

LexaK

блин ну что за бред?

Докнов=Документсчетфактура.ДокументыОснования.Добавить();
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка1;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка2;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка3;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка4;


за такое сразу ставят двойку и выгоняют с экзамена! :befhbt:

необходимо запросом получить нужные документы основания и в цикле заполнить ТЧ
вот пример, возможны варианты. (заполнение ТЧ загрузкой)
создаете в документе счет фактура кнопку ПодобратьОснования в ней код


//на сервере
Процедура ПодобратьОснования(Кнопка)

лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать
|//здесь формируете запрос который найдет ваши основания
|//по каким-то кретериям Контрагент, Договор и т.д.
| Док.Ссылка как ДокументОснование,
|   ...
|";
лкЗапрос.УстановитьПараметр("Контрагент",Контрагент);
лкЗапрос.УстановитьПараметр("Договор",Договор);

//получаем данные и формируем ТЧ Оснований
лкРезультат = лкЗапрос.Выполнить().Выбрать();
Пока лкРезультат.Следующий() Цикл
лкНов = ДокументыОснования.Добавить();
лкНов.ДокументОснование = лкРезультат.ДокументОснование;
//и другие нужные поля заполняете здесь, их можно в том-же запросе подготовить
КонецЦикла;

КонецПроцедуры

если помогло нажмите: Спасибо!

alexei1800

Цитата: alex0402 от 09 сен 2016, 11:43

Докнов=Документсчетфактура.ДокументыОснования.Добавить();
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка1;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка2;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка3;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка4;


Вот это работает, у меня теперь  в счет-фактуре выданной перестало работать
   Документсчетфактура.СуммаДокумента= общая_сумма;
   Документсчетфактура.Сумма= общая_сумма;
не присваивает хоть ты тресни
ДокументСчетФактура.Дата=текущаяДата();
      Документсчетфактура.Контрагент=контрагент;
      Документсчетфактура.ВидСчетаФактуры=Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
      сообщить("Общая сумма счет-фактуры="+общая_сумма);
   Документсчетфактура.ДоговорКонтрагента=выборка.ссылка;
   Документсчетфактура.СуммаДокумента= общая_сумма;
   Документсчетфактура.Сумма= общая_сумма;
           Документсчетфактура.организация=выборкаДетальныезаписи.Организация;
            Документсчетфактура.Проведен=Истина;
      Документсчетфактура.Записать();


Сумма везде = 0
Добавлено: 09 сен 2016, 15:04


Цитата: LexaK от 09 сен 2016, 13:38
блин ну что за бред?

Докнов=Документсчетфактура.ДокументыОснования.Добавить();
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка1;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка2;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка3;
НоваяСтрока = ДокНов.ТабличнаяЧасть.Добавить();
НоваяСтрока.ДокументОснование = Ссылка4;


за такое сразу ставят двойку и выгоняют с экзамена! :befhbt:

необходимо запросом получить нужные документы основания и в цикле заполнить ТЧ
вот пример, возможны варианты. (заполнение ТЧ загрузкой)
создаете в документе счет фактура кнопку ПодобратьОснования в ней код


//на сервере
Процедура ПодобратьОснования(Кнопка)

лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать
|//здесь формируете запрос который найдет ваши основания
|//по каким-то кретериям Контрагент, Договор и т.д.
| Док.Ссылка как ДокументОснование,
|   ...
|";
лкЗапрос.УстановитьПараметр("Контрагент",Контрагент);
лкЗапрос.УстановитьПараметр("Договор",Договор);

//получаем данные и формируем ТЧ Оснований
лкРезультат = лкЗапрос.Выполнить().Выбрать();
Пока лкРезультат.Следующий() Цикл
лкНов = ДокументыОснования.Добавить();
лкНов.ДокументОснование = лкРезультат.ДокументОснование;
//и другие нужные поля заполняете здесь, их можно в том-же запросе подготовить
КонецЦикла;

КонецПроцедуры


Спасибо большее это я уже сделал
подскажи теперь как сумму счет-фактуры программно вставить, счетфактура.суммадокумента, что не вставляешь пишет 0, до этого работало, я как стал что-то изменять перестало работать

cska-fanat-kz

Цитата: LexaK от 09 сен 2016, 13:38блин ну что за бред?

ну не без этого ;)
просто что было дано, то и исправил )
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск