Код: Выделить всё
#Del(SUMULTEC)
еслибы он очистилась то осталась 1526
и затем былабы попытка вставить туда
Код: Выделить всё
insert SUMULTEC select * from SUMULBUD
Модератор: Sparrow
Код: Выделить всё
#Del(SUMULTEC)
Код: Выделить всё
insert SUMULTEC select * from SUMULBUD
У вас он описан в Archive.vipvadim писал(а):а где и как у вас описан макрос #del?
Код: Выделить всё
//------------------------------------------------------------------------------
// Макрос для очистки содержимого таблицы
//------------------------------------------------------------------------------
#declare Del(Tbl)
if not TruncateCurrentPeriodData and ForJournal(co#Tbl)
DeletionResult := LogTableError((delete all #Tbl), co#Tbl);
else
{
DeletionResult := DelFil(co#Tbl, '#Tbl');
if DeletionResult <> tsOk
LogTableError((delete all #Tbl), co#Tbl);
}
#end
Код: Выделить всё
select SUMULSOC.Nrec,SUMULSOC.ATL_BRANCH,SUMUPSOC.Nrec,SUMUPSOC.ATL_BRANCH from SUMULSOC,SUMUPSOC where ((SUMULSOC.Nrec == SUMUPSOC.Nrec)) and SUMULSOC.ATL_BRANCH<>SUMUPSOC.ATL_BRANCH;
Код: Выделить всё
┌──────────────────────┬──────────────────────┬──────────────────────┬──────────────────────┐
│ Номер записи │ Филиал │ Номер записи │ Филиал │
├──────────────────────┼──────────────────────┼──────────────────────┼──────────────────────┤
│ 012C000000000019h │ 0001000000000012h │ 012C000000000019h │ 0001000000000002h │
│ 012C00000000001Ah │ 0001000000000012h │ 012C00000000001Ah │ 0001000000000002h │
│ 012C00000000001Bh │ 0001000000000012h │ 012C00000000001Bh │ 0001000000000002h │
│ 012C00000000001Ch │ 0001000000000012h │ 012C00000000001Ch │ 0001000000000002h │
│ 012C00000000001Dh │ 0001000000000012h │ 012C00000000001Dh │ 0001000000000002h │
│ 012C00000000001Eh │ 0001000000000012h │ 012C00000000001Eh │ 0001000000000002h │
│ 012C000000000024h │ 0001000000000011h │ 012C000000000024h │ 0001000000000012h │
│ 012C000000000025h │ 0001000000000011h │ 012C000000000025h │ 0001000000000012h │
│ 012C000000000026h │ 0001000000000011h │ 012C000000000026h │ 0001000000000012h │
то и натыкаемся на эту ошибку так как идет удаление с учетом филиала Del(Tbl)* ПРОБЛЕМА В ПИР: 101.39759
* ПЕРВОЕ РЕШЕНИЕ: 5.4.14.0
* КРАТКОЕ ОПИСАНИЕ: Удаляются налоги на ФОТ в другом филиале
* ПРОЕКТ: Заработная плата
* ДЕТАЛИЗАЦИЯ: Переход к новому периоду
# ЧТО ИЗМЕНЕНО: Галактика 8.10. Платформа MS SQL. Подключена филиальность.
Разграничение доступа в зарплате произведено на уровне
таблиц. Таблицы sumupsoc и perevodtek являются
филиальными.
Настройки "Отчетный период" и "Расчетный перниод" - филиальные.
Переходим на следующий месяц в головном филиале. Переход производится корректно
для головного филиала..
При этом в подчиненном филиале из результатов расчета сотрудников удаляются
рассчитанные налоги на ФОТ.
Также налоги на ФОТ удаляются во вкладках "Налоги на ФОТ до расчета зарплаты".
Если нужна база, то её можно переслать.
# КАК ИЗМЕНЕНО: Усечение филиальных таблиц теперь выполняется с учетом
наложенных филиальных фильтров.
не все а только филиала в котором работаемScrew писал(а):Верно ли я понял, что моя догадка верна, и insert..select пытается втащить все записи из исходной таблицы в целевую?
А усечение в условиях филиальности работает как и задумано, т.е., сводится у далению всех записей, относящихся к текущему филиалу.
Да верно! Вами занесете в ПИР или описать нам?Screw писал(а):О том ведь и речь: сначала из SUMUPSOC удаляются записи текущего филиала (при этом остаются записи, относящиеся к другим филиалам), а затем из SUMULSOC закачиваются данные по всему предприятию в целом! Неудивительно, что при этом дублируются NREC-и.
Если изложено верно, то этой проблеме прямая дорога в ПИР.