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

Хранилище

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

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



> Занесение в таблицу значений          
Nervosa Подменю пользователя
сообщение 20.01.10, 14:35
Сообщение #1

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

Здравствуйте!

Имеется следующий кусок кода:



ДокИск.ВыбратьДокументы(НачДата,КонДата);
Пока ДокИск.ПолучитьДокумент()=1 Цикл
Если (ДокИск.Покупатель = Контрагент) Тогда
ТаблицаДвижений.НоваяСтрока();
ТаблицаДвижений.Операция="Счёт №"+ДокИск.НомерДок+"от "+ ДокИск.ДатаДок;
ТаблицаДвижений.Документ = "Счёт №" + ДокИск.НомерДок+"от"+ДокИск.ДатаДок;
ТаблицаДвижений.Дебет = ДокИск.СуммаКОплате;



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

Подскажите, пожалуйста. хотя бы примерно - по каким причинам такое может происходить.
Заранее спасибо.

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

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

Ах да, забыл сказать, что СуммаКОплате - это реквизит табличной части документа, может тут собака зарыта?

MATEVI Подменю пользователя
сообщение 20.01.10, 15:20
Сообщение #3

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

Цитата(Nervosa @ 20.01.10, 15:37) *
Ах да, забыл сказать, что СуммаКОплате - это реквизит табличной части документа, может тут собака зарыта?

Тогда конечно в этом. А где ДокИск.ВыбратьСтроки(); И Пока ДокИск.ПолучитьСтроку()=1 Цикл?
А что за документ обрабатывается?

Nervosa Подменю пользователя
сообщение 20.01.10, 16:06
Сообщение #4

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

2 MATEVI

В смысле - что за документ? Называется СчётФактураПоНДС, имеет и шапку, и табличную часть. Собственно всё...

sarius Подменю пользователя
сообщение 20.01.10, 16:14
Сообщение #5

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

Ну так тогда или итог по этой колонке нужно лепить в присвоение (имхо это и требуется) либо перебирать строки


Signature
Возьму интерна (Киев)

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

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

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

Пока ДокИск.ПолучитьСтроку()=1 Цикл
// суммируем суммы в строках
КонецЦикла;

и только после этого записываем полученную сумму в ТаблицаДвижений.Дебет

Если включен итог по колонке, то сумму можно поллучить с помощью команды Итог()

Nervosa Подменю пользователя
сообщение 20.01.10, 16:27
Сообщение #7

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

Ну вот смотрите -



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

Если ДокИск.СуммаКОплате = Дебет Тогда

Суммакоп = ДокИск.СуммаКОплате;

КонецЕсли;

КонецЦикла;
ТаблицаДвижений.Операция = "Счёт №" + ДокИск.НомерДок + "от"+ДокИск.ДатаДок;
ТаблицаДвижений.Документ = "Счёт №" + ДокИск.НомерДок + "от"+ДокИск.ДатаДок;
ТаблицаДвижений.Дебет = Суммакоп;


КонецЕсли;


так тоже не работает.(

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

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

Цитата(Nervosa @ 20.01.10, 17:27) *
Ну вот смотрите -


так тоже не работает.(

А зачем это? Если ДокИск.СуммаКОплате = Дебет Тогда
Что такое дебет?

И если тебе нужны суммы по всем строкам тогда использовать Итог() Надо включить в свойствах реквизита дополнительные итог по колонке. Если не включен
ТаблицаДвижений.Дебет = ДокИск.Итог("СуммаКОплате");

А если нужно использовать только выборочные строки из ТЧ тогда должен быть перебор строк и использование условия.
Я не телепат и предположу что Дебет это какой то реквизит документа и тогда условие должно быть
ДокИск.ВыбратьСтроки();
Пока ДокИск.ПолучитьСтроку()=1 Цикл
Если Дебет = <Значение условия> Тогда
ТаблицаДвижений.Дебет = ДокИск.СуммаКОплате;

Batchir Подменю пользователя
сообщение 20.01.10, 17:40
Сообщение #9

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

1. Вариант


ДокИск.ВыбратьСтроки();
Суммакоп = 0;
Пока ДокИск.ПолучитьСтроку()=1 Цикл
Суммакоп = Суммакоп + ДокИск.СуммаКОплате;
КонецЦикла;


2. Вариант - сообщение №8 через команду Итог()

Nervosa Подменю пользователя
сообщение 21.01.10, 9:21
Сообщение #10

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

Фуф, всё !!! ДокИск.Итог("СуммаКОплате") помогло. Спасибо всем огромное smile.gif

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


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

 

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