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

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

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

Які ідеї фіксу ? )
Profi_1C77
Toster @ Сегодня, 14:48 необходимо зарегистрироваться для просмотра ссылки ,
как по быстрому - сделайте подписку события на регистр и там анализируйТЕ + код для неопределенно


 ! 

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

С УТ не работал, но ...
Себестоимость ведется в разрезе позиции Номенклатуры???
Себестоимость может меняться (разные партии, транспортировка и пр.)
Можно отследить Номенклатуру по которой "минус"?
Toster
AnryMc @ Сегодня, 15:04 необходимо зарегистрироваться для просмотра ссылки ,
зараз попробую описати детальніше в чому проблема

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

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

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

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

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


Profi_1C77
Цитата(Toster @ 22.04.25, 14:48) необходимо зарегистрироваться для просмотра ссылки
платформа 8.3.22.1923

а за нее багов не писали? виртуальные таблицы как раз платформа генерит
Toster
Profi_1C77 @ Сегодня, 15:15 необходимо зарегистрироваться для просмотра ссылки ,
не в курсі , це новий клієнт з сисадміном мудаком , який мені бекап на серваку 2 дня перезаливав , тому навіть якшо справа в платформі - фіг він її буде апгрейдити(даунгрейдити) ))
Profi_1C77
Toster @ Сегодня, 15:18 необходимо зарегистрироваться для просмотра ссылки ,
ну с сисадмином надо дружить, скачайТЕ базу на BAF нашу и проверьТЕ )

Цитата(Toster @ 22.04.25, 15:18) необходимо зарегистрироваться для просмотра ссылки
тому навіть якшо справа в платформі

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


 ! 

необходимо зарегистрироваться для просмотра ссылки: 1
 
Toster
Цитата(Toster @ 22.04.25, 15:18) необходимо зарегистрироваться для просмотра ссылки
клієнт з сисадміном мудаком

не варіант ставити баф
Profi_1C77
Цитата(Toster @ 22.04.25, 15:11) необходимо зарегистрироваться для просмотра ссылки
&ДатаС, &ДатаДо, Запись, , АналитикаУчетаНоменклатуры.Номенклатура = &Ном

Выносите в обычные условия ( ГДЕ) . Дальше я уже хз.... платформу проверить проще и правильнее всего
Toster
Profi_1C77 @ Сегодня, 15:31 необходимо зарегистрироваться для просмотра ссылки ,
виносив через "где" ) результат однаковий) . єдине шо не пробував то вивантажувати дт і завантажувати назад , хрін знає чи поможе , але певно треба спробувати
AnryMc
Toster @ Сегодня, 14:11 необходимо зарегистрироваться для просмотра ссылки ,

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

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

Как "решение через ЖЖЖЖ" условие в запросе: НЕ Регистратор Есть NULL????
Toster
AnryMc @ Сегодня, 15:36 необходимо зарегистрироваться для просмотра ссылки ,
серверна , версія скульки хрін знає яка . після 2х год переписки змусив сисадміна транкейтнути таблицю залишків і перебудував їх , результат не помінявся. реєстратор неопределено і все ...
AnryMc
Toster @ Сегодня, 14:11 необходимо зарегистрироваться для просмотра ссылки ,

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

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

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

У всех измерений регистра есть "галочка" - "Использовать в итогах"?????
Toster
AnryMc @ Сегодня, 15:45 необходимо зарегистрироваться для просмотра ссылки ,
залишки і обороти поламані

AnryMc @ Сегодня, 15:45 необходимо зарегистрироваться для просмотра ссылки ,
все перевірено окрім галочки , її впринципі немає )))
AnryMc
Toster @ Сегодня, 15:00 необходимо зарегистрироваться для просмотра ссылки ,

По моему проблема в запросе с интерпретацией "*" - нужно явно указать "Период" (возможно и "Регистратор") а потом "*"....
Toster
AnryMc @ Сегодня, 16:38 необходимо зарегистрироваться для просмотра ссылки ,
пробував різні запити , той що навів то просто приклад що видає 1с ) а так пробував з деталізаціє. до періода , до запису , авто , через "где " і як параметр віртуальної таблиці .явне вказання періода теж не допомагає , звідси роблю висновок що проблема саме в віртуальній таблиці , а от як її пофіксити ідей поки 0
TohaMonster
Навскидку, какая-то ерунда. И решение проблемы уже предложено
Цитата(AnryMc @ 22.04.25, 15:45) необходимо зарегистрироваться для просмотра ссылки
Если отдельно таблицы Обороты и Остатки и соединить????


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

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

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


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

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