Версия для печати темы (https://pro1c.org.ua/index.php?s=ed7e6e4e4db3a7fc2be7ea8ffd2bb0ff&showtopic=67816)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Поламана віртуальна таблиця залишків

Автор: Toster 22.04.25, 13:48

Доброго всім часу доби.
Трішки про систему : УТ 3.1 , платформа 8.3.22.1923
Початок проблеми :
При закритті місяця не спрацьовував розрахунок собівартості , по причині : " виявлено некоректний залишок у регістрі "Собівартість товарів": Количество = 0, Стоимость = -0,01, СтоимостьБезНДС = -0,01, СтоимостьРегл = -0,01"
Вирішив колупати регістр собівартість товарів , а саме таблицю залишків , і о чудо , цей некоректний залишок був сформований реєстратором "неопределено" (саме неопределено , а не об"єкт не знайдено ) , при цьому на фіз таблиці даного запису немає , скрізь гарно заповнені реєстратори і впринципі немає запису накшталт к-ть = 0 , ціна = -0,01 .

Емпіричним шляхом було виявлено, що деякі документи(закономірність ще не виявив) типу переміщення товарів і реалізація , дають 2 записа в таблиці залишків , 1- нормальний , інший з реєстратором неопределено

Що було зроблено на даний момент :
перерахунок підсумків/ тестування виправлення / транкейт таблицю залишків і перерахунок підсумків / перепроведення документа який дає хреновий запис на віртуалку, прикладання іконки до монітора(до сервера доступа немає) , танці з бубном, принесення в жертву козла. результат не змінний .

Які ідеї фіксу ? )

Автор: Profi_1C77 22.04.25, 14:02

Toster @ Сегодня, 14:48 * ,
как по быстрому - сделайте подписку события на регистр и там анализируйТЕ + код для неопределенно


 ! 

https://pro1c.org.ua/index.php?act=announce&id=2: 1
 

Автор: Toster 22.04.25, 14:04

Profi_1C77 @ Сегодня, 15:02 * ,
Так проблема в тому що на фізичну таблицю все пишеться ок , праблємка тільк в віртуальній , а туда , на скільки я знаю ми писати нічого не можемо і записи робить платформа на основі даних фіз таблиці

Автор: AnryMc 22.04.25, 14:04

Toster @ Сегодня, 13:48 * ,

С УТ не работал, но ...
Себестоимость ведется в разрезе позиции Номенклатуры???
Себестоимость может меняться (разные партии, транспортировка и пр.)
Можно отследить Номенклатуру по которой "минус"?

Автор: Toster 22.04.25, 14:11

AnryMc @ Сегодня, 15:04 * ,
зараз попробую описати детальніше в чому проблема

є такий умовний запис

выбрать * ИЗ
РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
ГДЕ
СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И СебестоимостьТоваров.Период <= &датаДо

Тут маємо гарних 8 записів де заповнені реєстратори. тут все ок

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

То на виході ми отримуємо 11 записів , 3 з яких зроблені реєстратором неопределено і дані фігурують дикі, які а рухах документі незазначені , накшталт к-ть 0 , ціна мінус 0,01



Автор: Profi_1C77 22.04.25, 14:15

Цитата(Toster @ 22.04.25, 14:48) *
платформа 8.3.22.1923

а за нее багов не писали? виртуальные таблицы как раз платформа генерит

Автор: Toster 22.04.25, 14:18

Profi_1C77 @ Сегодня, 15:15 * ,
не в курсі , це новий клієнт з сисадміном мудаком , який мені бекап на серваку 2 дня перезаливав , тому навіть якшо справа в платформі - фіг він її буде апгрейдити(даунгрейдити) ))

Автор: Profi_1C77 22.04.25, 14:22

Toster @ Сегодня, 15:18 * ,
ну с сисадмином надо дружить, скачайТЕ базу на BAF нашу и проверьТЕ )

Цитата(Toster @ 22.04.25, 15:18) *
тому навіть якшо справа в платформі

поставьТЕ baf и на ней запустите


 ! 

https://pro1c.org.ua/index.php?act=announce&id=2: 1
 

Автор: Toster 22.04.25, 14:27

Цитата(Toster @ 22.04.25, 15:18) *
клієнт з сисадміном мудаком

не варіант ставити баф

Автор: Profi_1C77 22.04.25, 14:31

Цитата(Toster @ 22.04.25, 15:11) *
&ДатаС, &ДатаДо, Запись, , АналитикаУчетаНоменклатуры.Номенклатура = &Ном

Выносите в обычные условия ( ГДЕ) . Дальше я уже хз.... платформу проверить проще и правильнее всего

Автор: Toster 22.04.25, 14:36

Profi_1C77 @ Сегодня, 15:31 * ,
виносив через "где" ) результат однаковий) . єдине шо не пробував то вивантажувати дт і завантажувати назад , хрін знає чи поможе , але певно треба спробувати

Автор: AnryMc 22.04.25, 14:36

Toster @ Сегодня, 14:11 * ,

База файловая? (тогда chdbfl.exe)

"Пустые" позиции могут возникнуть при выгрузке (т.к. при выгрузке происходит неявное исправление "битых" ссылок).

Как "решение через ЖЖЖЖ" условие в запросе: НЕ Регистратор Есть NULL????

Автор: Toster 22.04.25, 14:38

AnryMc @ Сегодня, 15:36 * ,
серверна , версія скульки хрін знає яка . після 2х год переписки змусив сисадміна транкейтнути таблицю залишків і перебудував їх , результат не помінявся. реєстратор неопределено і все ...

Автор: AnryMc 22.04.25, 14:45

Toster @ Сегодня, 14:11 * ,

"Минус" только в остатках????
Обороты нормально???

Если отдельно таблицы Обороты и Остатки и соединить????

В регистраторах регистра не удаленного объекта???

У всех измерений регистра есть "галочка" - "Использовать в итогах"?????

Автор: Toster 22.04.25, 15:00

AnryMc @ Сегодня, 15:45 * ,
залишки і обороти поламані

AnryMc @ Сегодня, 15:45 * ,
все перевірено окрім галочки , її впринципі немає )))

Автор: AnryMc 22.04.25, 15:38

Toster @ Сегодня, 15:00 * ,

По моему проблема в запросе с интерпретацией "*" - нужно явно указать "Период" (возможно и "Регистратор") а потом "*"....

Автор: Toster 22.04.25, 15:48

AnryMc @ Сегодня, 16:38 * ,
пробував різні запити , той що навів то просто приклад що видає 1с ) а так пробував з деталізаціє. до періода , до запису , авто , через "где " і як параметр віртуальної таблиці .явне вказання періода теж не допомагає , звідси роблю висновок що проблема саме в віртуальній таблиці , а от як її пофіксити ідей поки 0

Автор: TohaMonster 23.04.25, 11:16

Навскидку, какая-то ерунда. И решение проблемы уже предложено

Цитата(AnryMc @ 22.04.25, 15:45) *
Если отдельно таблицы Обороты и Остатки и соединить????


ВЫБРАТЬ
*
ИЗ
РегистрНакопления.СебестоимостьТоваров.ОстаткиИОбороты(&ДатаС, &ДатаДо, Запись, , АналитикаУчетаНоменклатуры.Номенклатура = &Ном) КАК СебестоимостьТоваровОстаткиИОбороты

Вот этот запрос дает Вам оборот по каждой записи и остаток по каждой записи. Вот остаток по каждой записи даст Вам Регистратор=НЕОПРЕДЕЛЕНО. То есть, хорошо бы посмотреть, что получится в Запросе, где запрос по остаткам выполняется без указания периодичности

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


Но если Вы говорите
Цитата(Toster @ 22.04.25, 16:00) *
залишки і обороти поламані

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua