#Include "s_public.ch" //обязательно указывать во всех листингах

 Procedure Main
   Local nTop:=8,nLeft:=8
   Static nChoice
   Local aMenu:={;
         ' 1. Первые шаги                  ',;
         ' 2. Примеры простейших реестров  ',;
         ' 3. Рабочий пример из БЭСТа      ',;
         ' 4. Выход                        ';
         }
   Local aComment:={;
         'Первые шаги для начинающих (с подробными комментариями)',;
         'Примеры использования универсальной функции GRefer() для простейших реестров',;
         'Настройка счетов учета материальных запасов - реальный пример из БЭСТа',;
         'Выход из программы';
         }
   Local aBlock:=  {;
         {|| FirstSteps(),.F. },;
         {|| GreferSamples(),.F. },;
         {|| SchetInit(),.F. },;
         {|| .T. };
         }
   Local cPaths:=LoadPath()+";"+LoadPath()+"sclad" //путь к файлам .dbf по умолчанию
   //LoadPath - путь к БД выбранного предприятия
   AltD()
   If !IsBestIni('БЭСТ: ПРИМЕРЫ ПОЛЬЗОВАТЕЛЬСКИХ ПРИЛОЖЕНИЙ',cPaths) //инициализация системного окружения БЭСТ
     Return
   EndIf
   MainMnu( "Примеры пользовательских функций",nTop,nLeft,aMenu,aComment,nChoice,,,aBlock)
   Return
   Static Function FirstSteps() //Static-процедура-видна только в этом листинге
   Local nTop:=11,nLeft:=12
   Static nChoice
   Local aMenu:={;
         ' 1. Простейший реестр            ',;
         ' 2. Сопроцедура                  ',;
         ' 3. Сортировка и поиск           ',;
         ' 4. Ввод и редактирование        ',;
         ' 5. Справочники и переключатели  ',;
         ' 6. Печать                       ',;
         ' 7. Выход                        ';
         }
   Local aComment:={;
         'Пример простейшего реестра',;
         'Усложнение примера: cопроцедура, выполняемая при перемещении по реестру',;
         'Усложнение примера: cортировка и поиск',;
         'Усложнение примера: ввод и редактирование',;
         'Технология навешивания справочников и переключателей',;
         'Вывод на печать',;
         'Выход из подменю';
         }
   Local aBlock:={;
         {|| Reestr(),.F. },;
         {|| CoProcedure(),.F. },;
         {|| SortAndSeek(),.F. },;
         {|| InputAndEdit(),.F. },;
         {|| Refers(),.F. },;
         {|| Print(),.F. },;
         {|| .T. };
         }
   MainMnu( "Первые шаги",nTop,nLeft,aMenu,aComment,nChoice,,,aBlock)
   Return .F.
   Static Procedure GreferSamples()
   Local nTop:=12,nLeft:=13
   Static nChoice
   Local aMenu:={;
         ' 1. Справочник операций движения ТМЦ            ',;
         ' 2. Справочник видов оплат                      ',;
         ' 3. Справочник примечаний                       ',;
         ' 4. Справочник партнеров                        ',;
         ' 5. Выход                                       ';
         }
   Local aComment:={;
         'Пример справочника операций движений ТМЦ',;
         'Пример справочника видов оплат',;
         'Пример справочника примечаний',;
         'Пример справочника партнеров',;
         'Выход из подменю',;
         }
   Local aBlock:=  {;
         {|| CodOp(),.F. },;
         {|| VidOpl(),.F. },;
         {|| VidPrim(),.F. },;
         {|| Spr_Partner(),.F. },;
         {|| .T. };
         }
   MainMnu( "Первые шаги",nTop,nLeft,aMenu,aComment,nChoice,,,aBlock)
   Return .F.
   //Примеры использования универсальной функции GRefer для простейших реестров

 Function CodOp()
   Local cScreen:=SaveScreen()
   Local cHead:='Справочник кодов операций движения ТМЦ'
   Local cHead1:="Приход"
   Local pVid:="1",pType:="1"
   GRefer('sclad\MCodOp',pVid,pType,'Справочник кодов операций движения ТМЦ',;
          cHead1,,,'cFind$UPPER(Name)','NoEdit')
   RestScreen(,,,,cScreen)
   Return(NIL)

 Function VidOpl()
   GRefer('sclad\MVPay',,,'Справочник видов оплат',,,,'cFind$UPPER(Name)')
   Return(NIL)

 Function VidPrim()
   GRefer('sclad\MPrim',,,'Справочник примечаний',,,,'cFind$UPPER(Name)')
   Return(NIL)

