Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Определение 1-е 2 -е событие 1с 7.7          
Змейкин Подменю пользователя
сообщение 22.09.13, 13:38
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Народ помогите есть 2 документа приходная накладная и расходный кассовый для приходной накладной я понял ее движения но для расходно кассового не пойму по чему он мою таблицу значений тбДолги не видит . и она пустая( вот пример
Процедура РассчитатьШапку()

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

//*****************************************************
Процедура ДвиженияКредДокумент()
Перем тбДолги;
ВремРегистры = СоздатьОбъект("Регистры");

Рег=ВремРегистры.ВзаиморасчетыПокупателей;
Рег.УстановитьЗначениеФильтра("Фирма",Фирма,1);
Рег.УстановитьЗначениеФильтра("ДокументДолга",ДокументОснование,1);
Рег.УстановитьЗначениеФильтра("ВидНДС",ВидНДС,1);
Если ИтогиАктуальны()=0 Тогда
  Рег.ВременныйРасчет();
  ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
КонецЕсли;

Рег.ВыгрузитьИтоги(тбДолги,1,1);

СуммаПогашения = СуммаОплаты;
СтавкаНДСПогашения = ВидНДС;

тбДолги.ВыбратьСтроку();
Если ДокументОснование.Выбран()=1 Тогда
  Счет = ДокументОснование;
Иначе
  Счет = ТекущийДокумент();
КонецЕсли;
глПогашениеДолга(Контекст, тбДолги, Фирма, Контрагент, Договор, ВидНДС, ДокументОснование, СуммаПогашения);

КонецПроцедуры
//и в глобальном ---------------------------------------------------------------------------------------------------------------------
   Процедура глПогашениеДолга(Конт, тбДолги, Фирма, Контрагент, Договор, ВидНДС, Счет, СуммаПогашения) Экспорт

ВидДок = Конт.Вид();

тбДолги.ВыбратьСтроки();
Пока тбДолги.ПолучитьСтроку()>0 Цикл

Если тбДолги.СуммаДолга<0 Тогда
Продолжить;
КонецЕсли;

Если СуммаПогашения=0 Тогда
Продолжить;
ИначеЕсли тбДолги.СуммаДолга<=СуммаПогашения Тогда
//полное погашение документа долга
тДокументДолга = тбДолги.ДокументДолга;
тСчет = тбДолги.Счет;
тСуммаПогашения = тбДолги.СуммаДолга;
глПогаситьДокументВзаиморасчетов(Конт,1, Фирма, Контрагент, Договор, ВидНДС, тСчет, тДокументДолга, тСуммаПогашения);
СуммаПогашения = СуммаПогашения - тСуммаПогашения;
ИначеЕсли тбДолги.СуммаДолга > СуммаПогашения Тогда
//частичное погашение
тДокументДолга = тбДолги.ДокументДолга;
тСчет = тбДолги.Счет;
тСуммаПогашения = СуммаПогашения;
глПогаситьДокументВзаиморасчетов(Конт,1, Фирма, Контрагент, Договор, ВидНДС, тСчет, тДокументДолга, тСуммаПогашения);
СуммаПогашения = 0;
КонецЕсли;
    Если тбДолги.СуммаОплаты < СуммаПогашения Тогда // Для расходного кассвого
   тДокументДолга = тбДолги.ДокументДолга;
   тСчет = тбДолги.Счет;
тСуммаПогашения = СуммаПогашения;
глПогаситьДокументВзаиморасчетов(Конт,-1, Фирма, Контрагент, Договор, ВидНДС, тСчет, тДокументДолга, тСуммаПогашения);

КонецЕсли;
КонецЦикла;

1Cv77 Подменю пользователя
сообщение 22.09.13, 16:22
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 195
Из: Украина, Мелитополь
Спасибо сказали: 61 раз
Рейтинг: 0

Цитата(Змейкин @ 22.09.13, 12:38) *
Перем тбДолги;


Самое простое что в голову приходит:

перенеси Перем тбДолги;
в глобалку

сделай так
Перем тбДолги Экспорт;

Sanyk Подменю пользователя
сообщение 23.09.13, 8:55
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 52
Спасибо сказали: 16 раз
Рейтинг: 0

Можливі ситуації:
1) Подивіться по часу як записані документи (внутрішня хронологія документів). Ви отримаєте підсумки на момент документу;
2) Перевірте фільтри отримання підсумків, особливо "ДокуменОснование". Далі по коду, ви припускаєте, що він може бути не заповненний;

P.S. Маю надію що "тбДолги.ВыбратьСтроку();" лише для тестування.

Сообщение отредактировал Vofka - 23.09.13, 9:23

-=VJ=- Подменю пользователя
сообщение 24.09.13, 15:00
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(Змейкин @ 22.09.13, 14:38) *
Рег.УстановитьЗначениеФильтра("Фирма",Фирма,1);
Рег.УстановитьЗначениеФильтра("ДокументДолга",ДокументОснование,1);
Рег.УстановитьЗначениеФильтра("ВидНДС",ВидНДС,1);
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());


Вроде бы из этих четырёх строк любому понятно, что если фильтр возвращает пустое значение - значит нужно стандартным образом проверить регистры на эти фильтры. Вполне возможно, движений просто нет.


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

Zaval Подменю пользователя
сообщение 24.09.13, 17:42
Сообщение #5

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Один из вариантов, почему пуста таблица долгов:
КО формируют на основании Счета, а документом долга могут выступать документы отгрузки/оплаты.
Тогда для КО долг по ДокументОснование = 0.

Как-то слишком просто Вы все это себе представвили smile.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 13:04
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!