Если клиент давний, то необходимо добавить новый отчет по прайсу (есть 2 варианта сплошной и каждая группа с новой строки). А также выполнить скрипт (открыв для этого SQL Server и сделав предварительно резервную копию базы)
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[get_services_list] ( @GroupId dbo.DT_ID ) RETURNS @price_list_table table (GroupCode varchar(200), GroupName varchar(500), GroupId integer, ServiceCode varchar(200), ServiceName varchar (500), BaseCost money, ServiceId integer) AS BEGIN --INSERT INTO @price_list_table(GroupId) VALUES (-555); IF ((SELECT COUNT(ID) FROM SERVICES WHERE ENABLED = 1 AND GROUPID = @GroupId) > 0) BEGIN INSERT INTO @price_list_table(GroupCode, GroupName, GroupId, ServiceCode, ServiceName, BaseCost, ServiceId) SELECT gs.code, gs.name, gs.id, s.code, s.name, s.basecost, s.id FROM groupservices gs LEFT JOIN services s ON s.groupid = gs.id WHERE gs.enabled = 1 AND s.enabled = 1 AND gs.ID = @GroupId ORDER BY s.CODE END; IF ((SELECT COUNT(ID) FROM groupservices WHERE ENABLED = 1 AND OWNER = @GroupId) > 0) BEGIN declare @xGroupId dbo.DT_ID; declare group_list cursor local forward_only static for select gs.id from GROUPSERVICES gs where gs.ENABLED = 1 AND gs.OWNER = @GroupId order by gs.ID open group_list; fetch next from group_list into @xGroupId; while @@FETCH_STATUS = 0 begin INSERT INTO @price_list_table(GroupCode, GroupName, GroupId, ServiceCode, ServiceName, BaseCost, ServiceId) SELECT * FROM dbo.get_services_list(@xGroupId) fetch next from group_list into @xGroupId; --if (@xGroupId > 17) -- break end; CLOSE group_list DEALLOCATE group_list END; RETURN; END GO