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

Хранилище

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

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



> 1c 8.1 УТ для Украины , Регистры накопления 2 страниц V   1 2 >          
Ученик_Покачто Подменю пользователя
сообщение 11.01.11, 11:34
Сообщение #1

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

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

Процедура ОбработкаПроведения(Отказ, Режим)
    
    // регистр ВзаиморасчетыСКонтрагентами Приход

    Движение = Движения.ВзаиморасчетыСКонтрагентами.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    
    Движение.СуммаВзаиморасчетов = Долг;
    Движение.СуммаУпр = Долг;
    Движение.Период = Дата;
    Движение.ДоговорКонтрагента = ДоговорКонтрагента;
  
    
// регистр РасчетыСКонтрагентами Приход

    Движение = Движения.РасчетыСКонтрагентами.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    
    Движение.Период = Дата;
    Движение.ДоговорКонтрагента = ДоговорКонтрагента;
    Движение.СуммаВзаиморасчетов = Долг;
    Движение.СуммаУпр = Долг;

    // записываем движения регистров

    Движения.ВзаиморасчетыСКонтрагентами.Записать();
    Движения.РасчетыСКонтрагентами.Записать();
    
КонецПроцедуры

Fynjy Подменю пользователя
сообщение 11.01.11, 11:37
Сообщение #2

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Получить данные долга - записать их в регистр с обратным знаком. Далее записать данные указанные в документе корректировка долга ...


Signature

Batchir Подменю пользователя
сообщение 11.01.11, 11:39
Сообщение #3

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Наболело. Использовать тег Код при публикации текста модуля религия не позволяет? Сколько можно исправлять Ваши сообщения.

awp Подменю пользователя
сообщение 11.01.11, 11:42
Сообщение #4

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 520
Спасибо сказали: 70 раз
Рейтинг: 51.3

1. Получить сумму долга либо запросом либо напрямую вытянуть из регистра.
2.Сделать движение в минус аналогично Вашей процедуре

Вообще вроде есть документ КорректировкаВзаморасчетов, точно не помню думаю что лучше чтобы он делал списание задолженности.


Signature
Бухгалтер - это не профессия! Это диагноз!

Ученик_Покачто Подменю пользователя
сообщение 11.01.11, 12:05
Сообщение #5

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

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

по поводу получения данных и записания их с обратным знаком :

Движение.СуммаВзаиморасчетов = -РегистрыНакопления.ВзаиморасчетыСКонтрагентами.суммавзаиморасчетов ;

как-то так?

Извините, если задаю тупые вопросы, просто недавно только начал 8ку изучать, учусь...

AlenaS Подменю пользователя
сообщение 11.01.11, 12:24
Сообщение #6

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

Цитата(Ученик_Покачто @ 11.01.11, 13:05) *
по поводу получения данных и записания их с обратным знаком :

Движение.СуммаВзаиморасчетов = -РегистрыНакопления.ВзаиморасчетыСКонтрагентами.суммавзаиморасчетов ;

как-то так?


В движениях так, но получение данных скорее всего нужно бы выполнить запросом, а потом просто выгрузить в таблицу движений, чтобы учесть правильно остатки по всем измерениям регистра

Ученик_Покачто Подменю пользователя
сообщение 11.01.11, 12:27
Сообщение #7

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

Цитата(AlenaS @ 11.01.11, 13:24) *
В движениях так, но получение данных скорее всего нужно бы выполнить запросом, а потом просто выгрузить в таблицу движений, чтобы учесть правильно остатки по всем измерениям регистра


хмм... а для чайника можно?

AlenaS Подменю пользователя
сообщение 11.01.11, 13:02
Сообщение #8

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

Примерно так:
    НаборДвижений = Движения.ВзаиморасчетыСКонтрагентами;
    ТаблицаДвижений = НаборДвижений.Выгрузить();
    ТаблицаДвижений.Очистить();
Запрос.Текст = "ВЫБРАТЬ
|    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
|    ВзаиморасчетыСКонтрагентамиОстатки.Сделка,
|    ВзаиморасчетыСКонтрагентамиОстатки.Организация,
|    ВзаиморасчетыСКонтрагентамиОстатки.Контрагент,
|    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетов,
|    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпр
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстатки";
    
    ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
    ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаОстатков, ТаблицаДвижений);

Спасибо сказали: Ученик_Покачто,

awp Подменю пользователя
сообщение 11.01.11, 13:04
Сообщение #9

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 520
Спасибо сказали: 70 раз
Рейтинг: 51.3

Цитата(Ученик_Покачто @ 11.01.11, 13:05) *
Корректировка долга хороший документ, но надо вручную выщитывать разницу между фактическим долгом и долгом по базе и добавлять в поле уменьшение или увеличение долга... у нас очень много контрагентов и реально очень много времени на это потратится((


При проведении документа создать документ корректировка передать в него контрагентов и договора. В самом документе корректировка есть кнопка мол заполнить по остаткам - выполнить тот код и провести документ.


Signature
Бухгалтер - это не профессия! Это диагноз!

Ученик_Покачто Подменю пользователя
сообщение 11.01.11, 13:04
Сообщение #10

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

Цитата(AlenaS @ 11.01.11, 14:02) *
Примерно так:
    НаборДвижений = Движения.ВзаиморасчетыСКонтрагентами;
    ТаблицаДвижений = НаборДвижений.Выгрузить();
    ТаблицаДвижений.Очистить();
Запрос.Текст = "ВЫБРАТЬ
|    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
|    ВзаиморасчетыСКонтрагентамиОстатки.Сделка,
|    ВзаиморасчетыСКонтрагентамиОстатки.Организация,
|    ВзаиморасчетыСКонтрагентамиОстатки.Контрагент,
|    ВзаиморасчетыСКонтрагентамиОстатки.ВидДеятельности,
|    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетов,
|    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпр
|ИЗ
|    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстатки";
    
    ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
    ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаОстатков, ТаблицаДвижений);



Спасибо! даже больше чем спасибо, спасибище))) icon_beer17.gif

AlenaS Подменю пользователя
сообщение 11.01.11, 13:11
Сообщение #11

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

Да на здоровье smile.gif ... только не используется полностью запрос, проанализируйте измерения в регистре Взаиморасчеты вашей конфигурации.. я вот только заметила , что ВидДеятельности - это добавленное мною измерение, в типовой его нет... в вашей конфе могут быть другие различия

Vofka Подменю пользователя
сообщение 11.01.11, 13:13
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4521 раз
Рейтинг: 3644.1

И для "спасибо" у нас есть кнопка "+СПС". Где она находится - НЕ СПРАШИВАТЬ, уже миллион раз говорили!

Ученик_Покачто Подменю пользователя
сообщение 11.01.11, 13:16
Сообщение #13

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

Цитата(AlenaS @ 11.01.11, 14:11) *
Да на здоровье smile.gif ... только не используется полностью запрос, проанализируйте измерения в регистре Взаиморасчеты вашей конфигурации.. я вот только заметила , что ВидДеятельности - это добавленное мною измерение, в типовой его нет... в вашей конфе могут быть другие различия



Вставил запрос - все равно не обнуляет icon_cuss.gif(( переделал под всои измерения... щас буду пробовать что-нить изменить((

Ученик_Покачто Подменю пользователя
сообщение 11.01.11, 13:17
Сообщение #14

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

Цитата(Vofka @ 11.01.11, 14:13) *
И для "спасибо" у нас есть кнопка "+СПС". Где она находится - НЕ СПРАШИВАТЬ, уже миллион раз говорили!



Хех) уже нажал на кнопку))

AlenaS Подменю пользователя
сообщение 11.01.11, 19:51
Сообщение #15

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

Цитата(Ученик_Покачто @ 11.01.11, 14:16) *
Вставил запрос - все равно не обнуляет


Словно с кассовым аппаратом работаете smile.gif ... Движение с минусом делает документ?
Просмотрите по отчету по взаиморасчетам почему вылазят остатки, может не все измерения учли, с датой(временем) что-то не так

Спасибо сказали: Ученик_Покачто,

Ученик_Покачто Подменю пользователя
сообщение 12.01.11, 10:19
Сообщение #16

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

Цитата(AlenaS @ 11.01.11, 20:51) *
Словно с кассовым аппаратом работаете smile.gif ... Движение с минусом делает документ?
Просмотрите по отчету по взаиморасчетам почему вылазят остатки, может не все измерения учли, с датой(временем) что-то не так


в том то и дело, что не делает(( уже и с конструктором запросов делал запрос, все равно ничего((( продолжаю експеременты))

AlenaS Подменю пользователя
сообщение 12.01.11, 14:05
Сообщение #17

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

Цитата(Ученик_Покачто @ 12.01.11, 11:19) *
в том то и дело, что не делает(( уже и с конструктором запросов делал запрос, все равно ничего((( продолжаю експеременты))


Сам по себе запрос движений и не должен делать . Он после оператора Запрос.Выполнить().Выгрузить(); должен дать Вам таблицу по остаткам, если они есть.
Проверьте этот момент в отладчике.
А движения делает оператор Движения.ВзаиморасчетыСКонтрагентами.Записать();

Сейчас привожу полную конструкцию.
       НаборДвижений = Движения.ВзаиморасчетыСКонтрагентами;
    ТаблицаДвижений = НаборДвижений.Выгрузить();
    ТаблицаДвижений.Очистить();
     Запрос.Текст = "ВЫБРАТЬ
       |    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
       |    ВзаиморасчетыСКонтрагентамиОстатки.Сделка,
       |    ВзаиморасчетыСКонтрагентамиОстатки.Организация,
       |    ВзаиморасчетыСКонтрагентамиОстатки.Контрагент,
       |    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетов,
       |    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпр
       |ИЗ
       |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстатки";
    
    ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
    ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаОстатков, ТаблицаДвижений);

//сюда нужно добавить строку в таблицу движений с новыми значениями регистра

    НаборДвижений.мПериод          = Дата;
    НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
    
    Движения.ВзаиморасчетыСКонтрагентами.ВыполнитьПриход();
    Движения.ВзаиморасчетыСКонтрагентами.Записать();



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

Ученик_Покачто Подменю пользователя
сообщение 12.01.11, 14:44
Сообщение #18

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

Цитата(AlenaS @ 12.01.11, 15:05) *
Сам по себе запрос движений и не должен делать . Он после оператора Запрос.Выполнить().Выгрузить(); должен дать Вам таблицу по остаткам, если они есть.
Проверьте этот момент в отладчике.
А движения делает оператор Движения.ВзаиморасчетыСКонтрагентами.Записать();

Сейчас привожу полную конструкцию.
       НаборДвижений = Движения.ВзаиморасчетыСКонтрагентами;
    ТаблицаДвижений = НаборДвижений.Выгрузить();
    ТаблицаДвижений.Очистить();
    Запрос.Текст = "ВЫБРАТЬ
       |    ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента,
       |    ВзаиморасчетыСКонтрагентамиОстатки.Сделка,
       |    ВзаиморасчетыСКонтрагентамиОстатки.Организация,
       |    ВзаиморасчетыСКонтрагентамиОстатки.Контрагент,
       |    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетов,
       |    -ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпр
       |ИЗ
       |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстатки";
    
    ТаблицаОстатков = Запрос.Выполнить().Выгрузить();
    ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаОстатков, ТаблицаДвижений);

//сюда нужно добавить строку в таблицу движений с новыми значениями регистра

    НаборДвижений.мПериод          = Дата;
    НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
    
    Движения.ВзаиморасчетыСКонтрагентами.ВыполнитьПриход();
    Движения.ВзаиморасчетыСКонтрагентами.Записать();



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



Написал следующее:

НаборДвижений = Движения.ВзаиморасчетыСКонтрагентами;
    ТаблицаДвижений = НаборДвижений.Выгрузить();
    ТаблицаДвижений.Очистить();
    Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетов,
               |    ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпр
               |ИЗ
               |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&Дата,
               |                        ДоговорКонтрагента = &ДоговорКонтрагента) КАК ВзаиморасчетыСКонтрагентамиОстатки";
Запрос.УстановитьПараметр("Дата", Новый Граница(Дата, ВидГраницы.Исключая));
Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    Движение = Движения.ВзаиморасчетыСКонтрагентами.Добавить();
    Движение.ВидДвижения         = ВидДвиженияНакопления.Расход;
    Движение.Период         = Дата;
    Движение.ДоговорКонтрагента     = ДоговорКонтрагента;
    Движение.СуммаВзаиморасчетов     = Выборка.СуммаВзаиморасчетов;
    Движение.СуммаУпр         = Выборка.СуммаУпр;
КонецЕсли;
// Приход
Движение = Движения.ВзаиморасчетыСКонтрагентами.Добавить();
Движение.ВидДвижения         = ВидДвиженияНакопления.Приход;
Движение.Период         = Дата;
Движение.ДоговорКонтрагента     = ДоговорКонтрагента;
Движение.СуммаВзаиморасчетов     = Долг;
Движение.СуммаУпр         = Долг;



заработало

AlenaS Подменю пользователя
сообщение 12.01.11, 15:35
Сообщение #19

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

Думаю, что Вы всё равно придете к варианту с выгрузкой в таблицу. У Контрагента может быть несколько догооров и также ещё разрезы Сделка, Организация, которые вы не учитываете. Обнуляется сумма в целом, но не закрываются измерения, что приведет в дальнейшем к неверным взаиморасчетам по этим разрезам..

Batchir Подменю пользователя
сообщение 12.01.11, 16:52
Сообщение #20

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Ученик_Покачто, во что верим? какую религию проповедуем?

Прочтите сообщение №3, посмотрите сообщение №8 и №17. Сделайте выводы и примените их к сообщению №18.

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


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

 

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