Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 08:32
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Help 1C_8.2 Внешняя_обработка Создание_документов  (Прочитано 3930 раз)

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

Оффлайн Art_Александр

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-23
  • Сайт: 
  • Профессия: Ученик 1С
День добрый. Начал вариться в 1с, программист в отпуске. Нужна помощь с внешней обработкой.
Суть задачи:
Бухгалтеру необходимо автоматически формировать реестры (документы, как лучше то сказать?) за конкретный период по полю задолжностей если оно не равно 0. На форме выбирают дату и вид услуги.

Как я представляю (уже никак Т_Т):
Справочники.Контрагенты.Реквизиты.АбонентскоеОбслуживание - необходимое поле, по которому проверяем.
Документы.СчетНаОплатуПокупателю.ТабличныеЧасти.Услуги.Сумма - поле, которое надо будет заполнить в документе.

*****************************************

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   ВыборкаДата=Документы.СчетНаОплатуПокупателю.Выбрать(ДатаВыбора); //возможно стоит искать по контрагенту, у которого АбонентскоеОбслуживание <> 0 ?
   Пока ВыборкаДата.Следующий() Цикл
      ТекущийДокумент=ВыборкаДата.Ссылка;
      ТекущийКонтрагент=ТекущийДокумент.Контрагент.Ссылка;
      Если (ТекущийКонтрагент.АбонентскоеОбслуживание<>0) Тогда             
         ДокУслуги=Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
         ДокУслуги.Заполнить(ТекущийДокумент.Ссылка);
         ДокУслуги.Дата=ДатаВыбора;
         ДокУслуги.Цена=ТекущийКонтрагент.АбонентскоеОбслуживание; //Возможно ли такое?Оо
         ДокУслуги.Записать();
      КонецЕсли;
   КонецЦикла;

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


*****************************************

Если что не так поправьте. Открыл базу, глаза разбежались, заблудился, сформулировать даже нормально не получется =_=. Взаранее спасибо. Буду рад критике, комментариям и ссылкам ^^


Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Я бы советовал сделать запросом это все. Инфы по запросам в 1С в инете полно. Пробуйте, какие-то вопросы будут, обращайтесь.

Оффлайн Art_Александр

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-23
  • Сайт: 
  • Профессия: Ученик 1С
На данный момент так:

***************************************

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

***************************************

Но всё ещё нужна помощь (в данный момент гуглю):
{Форма.Форма.Форма(9)}: Поле объекта не обнаружено (Ссылка)
         Объект=ДокУслуги.Услуги.Ссылка.Получить();
Добавлено: 24 Сен 2014, 08:55

Я бы советовал сделать запросом это все. Инфы по запросам в 1С в инете полно. Пробуйте, какие-то вопросы будут, обращайтесь.

Просто мне с запросами на данный момент тяжело обращаться (представление) =) Но обязательно попробую.

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
ДокУслуги=Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
       Объект=ДокУслуги.Услуги.Ссылка.Получить();
         Объект.Сумма=ТекущийКонтрагент.АбонентскоеОбслуживание;
         ДокУслуги.Дата=ДатаВыбора;
         ДокУслуги.Записать();

Метод СоздатьДокумент уже вернет Вам объект документа.

ДокУслуги=Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
ДокУслуги.Сумма=ТекущийКонтрагент.АбонентскоеОбслуживание;
ДокУслуги.Дата=ДатаВыбора;
ДокУслуги.Записать();
Если конечно у Вас только сумма в документе и нет других реквизитов
Да и Вы пишите что бухгалтеру нужно формировать реестры, то может это отчет всего лишь нужно, а не создавать документы?

Оффлайн Art_Александр

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-23
  • Сайт: 
  • Профессия: Ученик 1С
ДокУслуги.Сумма=ТекущийКонтрагент.АбонентскоеОбслуживание;
Если конечно у Вас только сумма в документе и нет других реквизитов

Сумма в табличной части, а такой вариант уже пробовал самым первым:
    {Форма.Форма.Форма(10)}: Поле объекта не обнаружено (Сумма)
    ДокУслуги.Сумма=ТекущийКонтрагент.АбонентскоеОбслуживание;

Да и Вы пишите что бухгалтеру нужно формировать реестры, то может это отчет всего лишь нужно, а не создавать документы?

Там получается идут реестры на оказание услуг (находятся в: номенклатура -> услуги -> реестровое обслуживание эмитентов). Я так понял, что их на печать отправляют, типа платёжки. Может и ошибаюсь. Второй день сижу вникаю, взаипонимание идёт тяжело, да и программист не отвечает.
Пойду погляжу, что такое отчёт, вдруг осинит ^^

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Сумма в табличной части
Значит надо добавлять строку в табличную часть и там заполнять сумму

Оффлайн mku-rino

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 2
  • КПД: 29%
  • Регистрация: 2014-09-23
  • Сайт: 
Необходимо заполнить табличную часть вашего документа. Например, у Вашего документа "СчетНаОплатуПокупателю" есть табличная часть Услуги.

Создаем документ:
Док = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();

Теперь добавляем строку в табличную часть Услуги, и после этого заполняем реквизиты табличной части:
Услуга = Док.Услуги.Добавить();
Услуга.Сумма = ВашаСумма;

Оффлайн Art_Александр

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-09-23
  • Сайт: 
  • Профессия: Ученик 1С
Услуга = Док.Услуги.Добавить();
Услуга.Сумма = ВашаСумма;

Вот как раз это только что я и сделал =) Обработка заработала, осталось только допилить немного =)
Всем спасибо за помощь!


Теги: 1C_8.2 HELP 
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
46 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 180
  • Точка Скрытых: 1
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal